python - How do I insert a demo user for testing? -
i'm working through unit testing tutorial in order test user access. here's test class
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'}) self.assertraises(accesserror): todo.browse([task.id]).name
when run test, i'm getting error
2017-08-20 17:02:19,861 25460 error todo odoo.addons.todo_app.tests.test_todo: error: test_record_rule (odoo.addons.todo_app.tests.test_todo.testtodo) 2017-08-20 17:02:19,861 25460 error todo odoo.addons.todo_app.tests.test_todo: test per user record rules 2017-08-20 17:02:19,861 25460 error todo odoo.addons.todo_app.tests.test_todo: traceback (most recent call last): 2017-08-20 17:02:19,861 25460 error todo odoo.addons.todo_app.tests.test_todo: file "c:\users\brubin\documents\odoo-dev\custom-addons\todo_app\tests\test_todo.py", line 9, in setup 2017-08-20 17:02:19,861 25460 error todo odoo.addons.todo_app.tests.test_todo: file "c:\program files (x86)\odoo 10.0\server\odoo\api.py", line 785, in ref 2017-08-20 17:02:19,861 25460 error todo odoo.addons.todo_app.tests.test_todo: file "c:\program files (x86)\odoo 10.0\server\odoo\addons\base\ir\ir_model.py", line 1091, in xmlid_to_object 2017-08-20 17:02:19,861 25460 error todo odoo.addons.todo_app.tests.test_todo: file "c:\program files (x86)\odoo 10.0\server\odoo\addons\base\ir\ir_model.py", line 1075, in xmlid_to_res_model_res_id 2017-08-20 17:02:19,861 25460 error todo odoo.addons.todo_app.tests.test_todo: file "<decorator-gen-5>", line 2, in xmlid_lookup 2017-08-20 17:02:19,861 25460 error todo odoo.addons.todo_app.tests.test_todo: file "c:\program files (x86)\odoo 10.0\server\odoo\tools\cache.py", line 87, in lookup 2017-08-20 17:02:19,861 25460 error todo odoo.addons.todo_app.tests.test_todo: file "c:\program files (x86)\odoo 10.0\server\odoo\addons\base\ir\ir_model.py", line 1064, in xmlid_lookup 2017-08-20 17:02:19,861 25460 error todo odoo.addons.todo_app.tests.test_todo: valueerror: external id not found in system: base.user_demo
i assume because don't have demo user in database (i created database -d
flag odoo-bin
rather creating through database manager). there way can add demo user without having delete , recreate database? tried going users in odoo , creating new user named demo, test still errors. can see demo user in res_users
table , looks identical in table demo user in res_users
that's in database did install demo data.
even though have user setup in database, you'll need make sure have external id of "base.user_demo" setup. if have user:
- activate developer mode
- navigate settings > technical > sequences & identifiers
- find external id current user , update identifier name
if wanted start on fresh user, define xml record along lines of:
<!-- generate external identifier of "{your custom module name}.user_demo" --> <record id="user_demo" model="res.users"> <field name="name"/> ... </record>
Comments
Post a Comment