diff --git a/.oca/oca-port/blacklist/base_user_role.json b/.oca/oca-port/blacklist/base_user_role.json new file mode 100644 index 000000000..c9b468506 --- /dev/null +++ b/.oca/oca-port/blacklist/base_user_role.json @@ -0,0 +1,6 @@ +{ + "pull_requests": { + "OCA/server-backend#237": "(auto) Nothing to port from PR #237", + "OCA/server-backend#262": "(auto) Nothing to port from PR #262" + } +} diff --git a/base_user_role/tests/test_user_role.py b/base_user_role/tests/test_user_role.py index 6f6402279..63444c018 100644 --- a/base_user_role/tests/test_user_role.py +++ b/base_user_role/tests/test_user_role.py @@ -137,12 +137,9 @@ def test_role_1_2_with_dates(self): self.assertEqual(user_group_ids, role_group_ids) def test_role_unlink(self): - # Get role1 groups - role1_group_ids = ( - self.role1_id.implied_ids.ids + self.role1_id.trans_implied_ids.ids - ) - role1_group_ids.append(self.role1_id.group_id.id) - role1_group_ids = sorted(set(role1_group_ids)) + # Get role1 and role2 groups + role1_groups = self.role1_id.trans_implied_ids | self.role1_id.group_id + role2_groups = self.role2_id.trans_implied_ids | self.role2_id.group_id # Configure the user with role1 and role2 self.user_id.write( @@ -153,22 +150,24 @@ def test_role_unlink(self): ] } ) + # Check user has groups from role1 and role2 + self.assertLessEqual(role1_groups, self.user_id.groups_id) + self.assertLessEqual(role2_groups, self.user_id.groups_id) # Remove role2 self.role2_id.unlink() - user_group_ids = sorted({group.id for group in self.user_id.groups_id}) - self.assertEqual(user_group_ids, role1_group_ids) + # Check user has groups from only role1 + self.assertLessEqual(role1_groups, self.user_id.groups_id) + self.assertFalse(role2_groups <= self.user_id.groups_id) # Remove role1 self.role1_id.unlink() - user_group_ids = sorted({group.id for group in self.user_id.groups_id}) - self.assertEqual(user_group_ids, []) + # Check user has no groups from role1 and role2 + self.assertFalse(role1_groups <= self.user_id.groups_id) + self.assertFalse(role2_groups <= self.user_id.groups_id) def test_role_line_unlink(self): - # Get role1 groups - role1_group_ids = ( - self.role1_id.implied_ids.ids + self.role1_id.trans_implied_ids.ids - ) - role1_group_ids.append(self.role1_id.group_id.id) - role1_group_ids = sorted(set(role1_group_ids)) + # Get role1 and role2 groups + role1_groups = self.role1_id.trans_implied_ids | self.role1_id.group_id + role2_groups = self.role2_id.trans_implied_ids | self.role2_id.group_id # Configure the user with role1 and role2 self.user_id.write( @@ -179,18 +178,23 @@ def test_role_line_unlink(self): ] } ) + # Check user has groups from role1 and role2 + self.assertLessEqual(role1_groups, self.user_id.groups_id) + self.assertLessEqual(role2_groups, self.user_id.groups_id) # Remove role2 from the user self.user_id.role_line_ids.filtered( lambda rl: rl.role_id.id == self.role2_id.id ).unlink() - user_group_ids = sorted({group.id for group in self.user_id.groups_id}) - self.assertEqual(user_group_ids, role1_group_ids) + # Check user has groups from only role1 + self.assertLessEqual(role1_groups, self.user_id.groups_id) + self.assertFalse(role2_groups <= self.user_id.groups_id) # Remove role1 from the user self.user_id.role_line_ids.filtered( lambda rl: rl.role_id.id == self.role1_id.id ).unlink() - user_group_ids = sorted({group.id for group in self.user_id.groups_id}) - self.assertEqual(user_group_ids, []) + # Check user has no groups from role1 and role2 + self.assertFalse(role1_groups <= self.user_id.groups_id) + self.assertFalse(role2_groups <= self.user_id.groups_id) def test_default_user_roles(self): self.default_user.write( @@ -257,16 +261,16 @@ def test_show_alert_computation(self): self.assertFalse(self.user_id.show_alert) def test_group_groups_into_role(self): - user_group_ids = [group.id for group in self.user_id.groups_id] + user_group_ids = self.user_id.groups_id.ids # Check that there is not a role with name: Test Role self.assertFalse(self.role_model.search([("name", "=", "Test Role")])) # Call create_role function to group groups into a role wizard = self.wiz_model.with_context(active_ids=user_group_ids).create( {"name": "Test Role"} ) - wizard.create_role() + res = wizard.create_role() # Check that a role with name: Test Role has been created - new_role = self.role_model.search([("name", "=", "Test Role")]) - self.assertTrue(new_role) - # Check that the role has the correct groups - self.assertEqual(new_role.implied_ids.ids, user_group_ids) + new_role = self.env[res["res_model"]].browse(res["res_id"]) + self.assertEqual(new_role.name, "Test Role") + # Check that the role has the correct groups (even if the order is not equal) + self.assertEqual(set(new_role.implied_ids.ids), set(user_group_ids))