如何在 Odoo 中以有限的权限执行单元测试

问题描述 投票:0回答:1

在我的 Odoo 模块中,我尝试构建单元测试并以有限的用户权限执行操作。问题是,在 Odoo 中,所有单元测试都是以超级用户权限执行的。 在下面的示例中,我尝试创建一个具有有限权限的合作伙伴(使用 sudo),以便我可以调用 action_edit_cfdi_customer 函数。但我在 'self.env['res.partner'].sudo(self.limited_user)' 中遇到错误

def test_action_edit_cfdi_customer_04_access_error(self):
    self.limited_user = self.env['res.users'].create({
        'name': 'Limited User',
        'login': 'limited_user',
        'email': '[email protected]',
        'groups_id': [(6, 0, [self.env.ref('base.group_user').id])]
    })
    self.partner_model_limited = self.env['res.partner'].sudo(self.limited_user)

    sample_partner_2 =  self.partner_model_limited.create({
        'name': 'Empresa Prueba',
        'vat': 'EKU900317310',

    })

    with self.assertRaises(AccessDenied) as e:
        sample_partner_2.action_edit_cfdi_customer() 

这是错误

>   File "/home/ernesto/Programming/odoo/viixoo_admin/odoo/models.py",
> line 5880, in sudo
>     assert isinstance(flag, bool) AssertionError

所以,我想知道是否有任何方法可以作为另一个具有有限权限的用户执行该特定测试,或者有一种方法可以在模型中调用 sudo,这样我就可以作为另一个用户执行模型方法。

unit-testing odoo pytest
1个回答
0
投票
应使用

with_user()
。例如
self.env['res.partner'].with_user(self.imited_user)

© www.soinside.com 2019 - 2024. All rights reserved.