如何插入演示用户进行测试?

2024-09-30 12:22:19 发布

您现在位置:Python中文网/ 问答频道 /正文

为了测试用户访问,我正在学习单元测试教程。这是我的测试课

class TestTodo(TransactionCase):

    def setUp(self, *args, **kwargs):
        result = super(TestTodo, self).setUp(*args, **kwargs)
        user_demo = self.env.ref('base.user_demo')
        self.env = self.env(user = user_demo)
        return result

    def test_record_rule(self):
        "Test per user record rules"
        Todo = self.env['todo.task']
        task = Todo.sudo().create({'name': 'Admin Task'})
        with self.assertRaises(AccessError):
            Todo.browse([task.id]).name

当我运行测试时,我得到了这个错误

^{pr2}$

我假设这是因为我的数据库中没有demo用户(我用-d标志创建了这个数据库,而不是通过数据库管理器创建它)。有没有一种方法可以添加演示用户而不必删除和重新创建我的数据库?我尝试使用Odoo中的用户并创建一个名为demo的新用户,但是测试仍然出错。我可以在res_users表中看到demo用户,它在该表中与res_users中的demo用户完全相同,这是在我安装了演示数据的数据库中。在


Tags: 用户selfenv数据库taskdemodefsetup
2条回答

即使您的数据库中有用户设置,也需要确保您的外部id为“base.user_演示“设置。如果已经有用户:

  1. 激活开发人员模式
  2. 导航到“设置”>;“技术”>;“序列”和“标识符”
  3. 查找当前用户的外部id并更新标识符名称

如果您想从新用户开始,还可以按照以下行定义XML记录:

<! 
This will generate an external identifier
of "{your custom module name}.user_demo"
 >

<record id="user_demo" model="res.users">
    <field name="name"/>

    ...
</record>

我也有同样的问题,同样的电子书代码。我刚刚删除了数据库并重新运行了odoobin。错误消息消失了。在

相关问题 更多 >

    热门问题