@@ -27,8 +27,8 @@ def setUpClass(cls):
2727 "name" : "Test User" ,
2828 "login" : "test_user" ,
2929 "role_line_ids" : [
30- ( 0 , 0 , {"role_id" : cls .role_user .id }),
31- ( 0 , 0 , {"role_id" : cls .role_no_one .id }),
30+ Command . create ( {"role_id" : cls .role_user .id }),
31+ Command . create ( {"role_id" : cls .role_no_one .id }),
3232 ],
3333 }
3434 )
@@ -44,19 +44,26 @@ def test_set_groups_from_roles(self):
4444 self .assertIn (self .env .ref ("base.group_user" ).id , self .user .group_ids .ids )
4545 self .assertIn (self .env .ref ("base.group_no_one" ).id , self .user .group_ids .ids )
4646
47- def test_default_role_lines (self ):
47+ def test_default_role_lines_uses_is_default (self ):
48+ """Default role lines come from roles with is_default=True, not from arbitrary users."""
49+ # Neither role is marked as default, so no defaults should be returned
4850 default_values = self .env ["res.users" ]._default_role_lines ()
51+ default_role_ids = [v ["role_id" ] for v in default_values ]
52+ self .assertNotIn (self .role_user .id , default_role_ids )
53+ self .assertNotIn (self .role_no_one .id , default_role_ids )
4954
50- self .assertTrue (bool (default_values ))
51- self .assertEqual (len (default_values ), 2 )
52- self .assertEqual (default_values [0 ]["role_id" ], self .role_user .id )
53- self .assertEqual (default_values [1 ]["role_id" ], self .role_no_one .id )
54- self .assertTrue (default_values [0 ]["is_enabled" ])
55- self .assertTrue (default_values [1 ]["is_enabled" ])
56- self .assertFalse (default_values [0 ]["date_from" ])
57- self .assertFalse (default_values [1 ]["date_from" ])
58- self .assertFalse (default_values [0 ]["date_to" ])
59- self .assertFalse (default_values [1 ]["date_to" ])
55+ # Mark one role as default
56+ self .role_user .is_default = True
57+ default_values = self .env ["res.users" ]._default_role_lines ()
58+ default_role_ids = [v ["role_id" ] for v in default_values ]
59+ self .assertIn (self .role_user .id , default_role_ids )
60+ self .assertNotIn (self .role_no_one .id , default_role_ids )
61+
62+ # New user without explicit role_line_ids gets the default role
63+ new_user = self .env ["res.users" ].create ({"name" : "New User" , "login" : "new_test_user" })
64+ new_user_role_ids = new_user .role_line_ids .mapped ("role_id" ).ids
65+ self .assertIn (self .role_user .id , new_user_role_ids )
66+ self .assertNotIn (self .role_no_one .id , new_user_role_ids )
6067
6168 @unittest .skip ("center_area_ids computation not available in Odoo 19 build" )
6269 def test_compute_center_area_ids (self ):
0 commit comments