Skip to content

Commit 950841a

Browse files
[MIG] base_user_role_profile: Migration to v19
1 parent 46f0f62 commit 950841a

2 files changed

Lines changed: 137 additions & 73 deletions

File tree

base_user_role_profile/__manifest__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
{
44
"name": "User profiles",
5-
"version": "18.0.1.0.0",
5+
"version": "19.0.1.0.0",
66
"category": "Tools",
77
"author": "Akretion, Odoo Community Association (OCA)",
88
"license": "AGPL-3",

base_user_role_profile/tests/test_user_role_profile.py

Lines changed: 136 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -1,135 +1,185 @@
11
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
2-
from odoo.tests.common import TransactionCase
2+
from odoo import fields
3+
from odoo.tests.common import TransactionCase, new_test_user
34

45

56
class TestUserProfile(TransactionCase):
6-
def _helper_unpack_groups_role(self, role):
7-
role_group_ids = role.trans_implied_ids.ids
8-
role_group_ids.append(role.group_id.id)
9-
return sorted(set(role_group_ids))
10-
11-
def _helper_unpack_groups_group(self, group):
12-
group_ids = group.trans_implied_ids.ids
13-
group_ids.append(group.id)
14-
return sorted(set(group_ids))
15-
16-
def setUp(self):
17-
super().setUp()
18-
self.user_model = self.env["res.users"]
19-
self.role_model = self.env["res.users.role"]
7+
@classmethod
8+
def setUpClass(cls):
9+
super().setUpClass()
10+
cls.role_model = cls.env["res.users.role"]
2011

21-
self.default_user = self.env.ref("base.default_user")
22-
user_vals = {
23-
"name": "USER TEST (ROLES)",
24-
"login": "user_test_roles",
25-
}
26-
self.user_id = self.user_model.create(user_vals)
12+
cls.user_id = new_test_user(
13+
cls.env, login="user_test_roles", name="USER TEST (ROLES)"
14+
)
2715

28-
self.profile1_id = self.env["res.users.profile"].create({"name": "profile1"})
29-
self.profile2_id = self.env["res.users.profile"].create({"name": "profile2"})
16+
cls.profile1_id = cls.env["res.users.profile"].create({"name": "profile1"})
17+
cls.profile2_id = cls.env["res.users.profile"].create({"name": "profile2"})
3018

3119
# role 1
32-
self.group_user_id = self.env.ref("base.group_user")
33-
self.group_no_one_id = self.env.ref("base.group_no_one")
20+
cls.group_user_id = cls.env.ref("base.group_user")
21+
cls.group_no_one_id = cls.env.ref("base.group_no_one")
3422

3523
# role 2
36-
self.group_system_id = self.env.ref("base.group_system")
37-
self.group_multi_company_id = self.env.ref("base.group_multi_company")
24+
cls.group_system_id = cls.env.ref("base.group_system")
25+
cls.group_multi_company_id = cls.env.ref("base.group_multi_company")
3826

3927
# role 3
40-
self.group_erp_manager_id = self.env.ref("base.group_erp_manager")
41-
self.group_partner_manager_id = self.env.ref("base.group_partner_manager")
28+
cls.group_erp_manager_id = cls.env.ref("base.group_erp_manager")
29+
cls.group_partner_manager_id = cls.env.ref("base.group_partner_manager")
4230

4331
# roles 1 and 2 have a profile, role 3 no profile
4432
vals = {
4533
"name": "ROLE_1",
46-
"implied_ids": [(6, 0, [self.group_user_id.id, self.group_no_one_id.id])],
47-
"profile_id": self.profile1_id.id,
34+
"implied_ids": [
35+
fields.Command.set([cls.group_user_id.id, cls.group_no_one_id.id])
36+
],
37+
"profile_id": cls.profile1_id.id,
4838
}
49-
self.role1_id = self.role_model.create(vals)
50-
self.role1_group_ids = self._helper_unpack_groups_role(self.role1_id)
39+
cls.role1_id = cls.role_model.create(vals)
40+
cls.role1_group_ids = cls._helper_unpack_groups_role(cls.role1_id)
5141

5242
vals = {
5343
"name": "ROLE_2",
5444
"implied_ids": [
55-
(
56-
6,
57-
0,
58-
[self.group_system_id.id, self.group_multi_company_id.id],
45+
fields.Command.set(
46+
[cls.group_system_id.id, cls.group_multi_company_id.id]
5947
)
6048
],
61-
"profile_id": self.profile2_id.id,
49+
"profile_id": cls.profile2_id.id,
6250
}
63-
self.role2_id = self.role_model.create(vals)
64-
self.role2_group_ids = self._helper_unpack_groups_role(self.role2_id)
51+
cls.role2_id = cls.role_model.create(vals)
52+
cls.role2_group_ids = cls._helper_unpack_groups_role(cls.role2_id)
6553

6654
vals = {
6755
"name": "ROLE_3",
6856
"implied_ids": [
69-
(
70-
6,
71-
0,
72-
[
73-
self.group_erp_manager_id.id,
74-
self.group_partner_manager_id.id,
75-
],
57+
fields.Command.set(
58+
[cls.group_erp_manager_id.id, cls.group_partner_manager_id.id]
7659
)
7760
],
7861
}
79-
self.role3_id = self.role_model.create(vals)
80-
self.role3_group_ids = self._helper_unpack_groups_role(self.role3_id)
62+
cls.role3_id = cls.role_model.create(vals)
63+
cls.role3_group_ids = cls._helper_unpack_groups_role(cls.role3_id)
64+
65+
@staticmethod
66+
def _helper_unpack_groups_role(role):
67+
role_group_ids = role.all_implied_ids.ids
68+
return sorted(set(role_group_ids))
69+
70+
@staticmethod
71+
def _helper_unpack_groups_group(group):
72+
group_ids = group.all_implied_ids.ids
73+
group_ids.append(group.id)
74+
return sorted(set(group_ids))
8175

8276
def test_filter_by_profile(self):
83-
line1_vals = {"role_id": self.role1_id.id, "user_id": self.user_id.id}
84-
self.user_id.write({"role_line_ids": [(0, 0, line1_vals)]})
85-
line2_vals = {"role_id": self.role2_id.id, "user_id": self.user_id.id}
86-
self.user_id.write({"role_line_ids": [(0, 0, line2_vals)]})
77+
self.user_id.write(
78+
{
79+
"role_line_ids": [
80+
fields.Command.create(
81+
{"role_id": self.role1_id.id, "user_id": self.user_id.id}
82+
)
83+
]
84+
}
85+
)
86+
self.user_id.write(
87+
{
88+
"role_line_ids": [
89+
fields.Command.create(
90+
{"role_id": self.role2_id.id, "user_id": self.user_id.id}
91+
)
92+
]
93+
}
94+
)
8795
self.assertEqual(self.user_id.profile_ids, self.profile1_id + self.profile2_id)
8896
self.assertEqual(self.user_id.profile_id, self.profile1_id)
8997
self.assertFalse(self.user_id.restrict_profile_switching)
9098
self.user_id.action_profile_change({"profile_id": self.profile1_id.id})
9199

92-
user_group_ids = sorted({group.id for group in self.user_id.groups_id})
100+
user_group_ids = sorted({group.id for group in self.user_id.group_ids})
93101
expected_group_ids = sorted(set(self.role1_group_ids))
94102
self.assertEqual(user_group_ids, expected_group_ids)
95103

96104
self.assertFalse(self.user_id.restrict_profile_switching)
97105
self.user_id.action_profile_change({"profile_id": self.profile2_id.id})
98106

99-
user_group_ids = sorted({group.id for group in self.user_id.groups_id})
107+
user_group_ids = sorted({group.id for group in self.user_id.group_ids})
100108
expected_group_ids = sorted(set(self.role2_group_ids))
101109
self.assertEqual(user_group_ids, expected_group_ids)
102110

103111
def test_restrict_profile_switching(self):
104-
line1_vals = {"role_id": self.role1_id.id, "user_id": self.user_id.id}
105-
self.user_id.write({"role_line_ids": [(0, 0, line1_vals)]})
106-
line2_vals = {"role_id": self.role2_id.id, "user_id": self.user_id.id}
107-
self.user_id.write({"role_line_ids": [(0, 0, line2_vals)]})
112+
self.user_id.write(
113+
{
114+
"role_line_ids": [
115+
fields.Command.create(
116+
{"role_id": self.role1_id.id, "user_id": self.user_id.id}
117+
)
118+
]
119+
}
120+
)
121+
self.user_id.write(
122+
{
123+
"role_line_ids": [
124+
fields.Command.create(
125+
{"role_id": self.role2_id.id, "user_id": self.user_id.id}
126+
)
127+
]
128+
}
129+
)
108130
self.assertEqual(self.user_id.profile_id, self.profile1_id)
109131
self.user_id.restrict_profile_switching = True
110132
self.assertTrue(self.user_id.restrict_profile_switching)
111133
self.user_id.action_profile_change({"profile_id": self.profile2_id.id})
112134
self.assertEqual(self.user_id.profile_id, self.profile1_id)
113135

114136
def test_allow_by_noprofile(self):
115-
line1_vals = {"role_id": self.role1_id.id, "user_id": self.user_id.id}
116-
self.user_id.write({"role_line_ids": [(0, 0, line1_vals)]})
117-
line2_vals = {"role_id": self.role3_id.id, "user_id": self.user_id.id}
118-
self.user_id.write({"role_line_ids": [(0, 0, line2_vals)]})
137+
self.user_id.write(
138+
{
139+
"role_line_ids": [
140+
fields.Command.create(
141+
{"role_id": self.role1_id.id, "user_id": self.user_id.id}
142+
)
143+
]
144+
}
145+
)
146+
self.user_id.write(
147+
{
148+
"role_line_ids": [
149+
fields.Command.create(
150+
{"role_id": self.role3_id.id, "user_id": self.user_id.id}
151+
)
152+
]
153+
}
154+
)
119155
self.assertFalse(self.user_id.include_default_profile)
120156
self.assertEqual(self.user_id.profile_ids, self.profile1_id)
121157
user_group_ids = []
122-
for group in self.user_id.groups_id:
158+
for group in self.user_id.group_ids:
123159
user_group_ids += self._helper_unpack_groups_group(group)
124160
user_group_ids = set(user_group_ids)
125161
expected_groups = set(self.role1_group_ids + self.role3_group_ids)
126162
self.assertEqual(user_group_ids, expected_groups)
127163

128164
def test_include_default_profile(self):
129-
line1_vals = {"role_id": self.role1_id.id, "user_id": self.user_id.id}
130-
self.user_id.write({"role_line_ids": [(0, 0, line1_vals)]})
131-
line2_vals = {"role_id": self.role3_id.id, "user_id": self.user_id.id}
132-
self.user_id.write({"role_line_ids": [(0, 0, line2_vals)]})
165+
self.user_id.write(
166+
{
167+
"role_line_ids": [
168+
fields.Command.create(
169+
{"role_id": self.role1_id.id, "user_id": self.user_id.id}
170+
)
171+
]
172+
}
173+
)
174+
self.user_id.write(
175+
{
176+
"role_line_ids": [
177+
fields.Command.create(
178+
{"role_id": self.role3_id.id, "user_id": self.user_id.id}
179+
)
180+
]
181+
}
182+
)
133183
self.user_id.write({"include_default_profile": True})
134184
self.assertTrue(self.user_id.include_default_profile)
135185
self.assertEqual(
@@ -138,10 +188,24 @@ def test_include_default_profile(self):
138188
)
139189

140190
def test_update_profile_id(self):
141-
line1_vals = {"role_id": self.role1_id.id, "user_id": self.user_id.id}
142-
self.user_id.write({"role_line_ids": [(0, 0, line1_vals)]})
143-
line2_vals = {"role_id": self.role3_id.id, "user_id": self.user_id.id}
144-
self.user_id.write({"role_line_ids": [(0, 0, line2_vals)]})
191+
self.user_id.write(
192+
{
193+
"role_line_ids": [
194+
fields.Command.create(
195+
{"role_id": self.role1_id.id, "user_id": self.user_id.id}
196+
)
197+
]
198+
}
199+
)
200+
self.user_id.write(
201+
{
202+
"role_line_ids": [
203+
fields.Command.create(
204+
{"role_id": self.role3_id.id, "user_id": self.user_id.id}
205+
)
206+
]
207+
}
208+
)
145209
self.assertFalse(self.user_id.include_default_profile)
146210
self.user_id.profile_ids = False
147211
self.user_id._update_profile_id()

0 commit comments

Comments
 (0)