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:

  1. activate developer mode
  2. navigate settings > technical > sequences & identifiers
  3. 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

Popular posts from this blog

ubuntu - PHP script to find files of certain extensions in a directory, returns populated array when run in browser, but empty array when run from terminal -

php - How can i create a user dashboard -

javascript - How to detect toggling of the fullscreen-toolbar in jQuery Mobile? -