@@ -12,47 +12,151 @@ def fake():
1212
1313
1414@pytest .fixture
15- def client_with_user (client , django_user_model , logged_user ):
15+ def client_with_user (client , logged_user ):
1616 client .force_login (logged_user )
1717 return client
1818
1919
20+ _all_roles = set ('data_scientist lead client webdev member' .split ())
21+ _advanced_roles = {'member' }
22+ _level_one_roles = set ('client webdev member' .split ())
23+ _level_two_roles = set ('webdev member' .split ())
24+
25+
2026@pytest .fixture
2127def logged_user (django_user_model ):
22- logged_user = baker .make (django_user_model )
28+ logged_user = baker .make (django_user_model , is_superuser = False )
2329 logged_user .email = logged_user .email .lower ()
2430 logged_user .save ()
2531 return logged_user
2632
2733
34+ @pytest .fixture (params = _all_roles )
35+ @pytest .mark .django_db
36+ def pythonpro_role (logged_user , request ):
37+ role = request .param
38+ assign_role (logged_user , role )
39+ return logged_user
40+
41+
42+ @pytest .fixture
43+ def client_with_all_roles (client , pythonpro_role ):
44+ client .force_login (pythonpro_role )
45+ return client
46+
47+
48+ @pytest .fixture (params = _advanced_roles )
49+ @pytest .mark .django_db
50+ def advanced_role (logged_user , request ):
51+ role = request .param
52+ assign_role (logged_user , role )
53+ return logged_user
54+
55+
56+ @pytest .fixture
57+ def client_with_advanced_roles (client , advanced_role ):
58+ client .force_login (advanced_role )
59+ return client
60+
61+
62+ @pytest .fixture (params = _all_roles - _advanced_roles )
63+ @pytest .mark .django_db
64+ def not_advanced_role (logged_user , request ):
65+ role = request .param
66+ assign_role (logged_user , role )
67+ return logged_user
68+
69+
70+ @pytest .fixture
71+ def client_with_not_advanced_roles (client , not_advanced_role ):
72+ client .force_login (not_advanced_role )
73+ return client
74+
75+
76+ @pytest .fixture (params = _level_one_roles )
77+ @pytest .mark .django_db
78+ def level_one_role (logged_user , request ):
79+ role = request .param
80+ assign_role (logged_user , role )
81+ return logged_user
82+
83+
84+ @pytest .fixture
85+ def client_with_level_one_roles (client , level_one_role ):
86+ client .force_login (level_one_role )
87+ return client
88+
89+
90+ @pytest .fixture (params = _all_roles - _level_one_roles )
91+ @pytest .mark .django_db
92+ def not_level_one_role (logged_user , request ):
93+ role = request .param
94+ assign_role (logged_user , role )
95+ return logged_user
96+
97+
98+ @pytest .fixture
99+ def client_with_not_level_one_roles (client , not_level_one_role ):
100+ client .force_login (not_level_one_role )
101+ return client
102+
103+
104+ @pytest .fixture (params = _level_two_roles )
105+ @pytest .mark .django_db
106+ def level_two_role (logged_user , request ):
107+ role = request .param
108+ assign_role (logged_user , role )
109+ return logged_user
110+
111+
112+ @pytest .fixture
113+ def client_with_level_two_roles (client , level_two_role ):
114+ client .force_login (level_two_role )
115+ return client
116+
117+
118+ @pytest .fixture (params = _all_roles - _level_two_roles )
119+ @pytest .mark .django_db
120+ def not_level_two_role (logged_user , request ):
121+ role = request .param
122+ assign_role (logged_user , role )
123+ return logged_user
124+
125+
126+ @pytest .fixture
127+ def client_with_not_level_two_roles (client , not_level_two_role ):
128+ client .force_login (not_level_two_role )
129+ return client
130+
131+
28132@pytest .fixture
29133def cohort (db ):
30134 return baker .make (Cohort )
31135
32136
33137@pytest .fixture
34- def client_with_lead (client , django_user_model , logged_user ):
138+ def client_with_lead (client , logged_user ):
35139 assign_role (logged_user , 'lead' )
36140 client .force_login (logged_user )
37141 return client
38142
39143
40144@pytest .fixture
41- def client_with_webdev (client , django_user_model , logged_user ):
145+ def client_with_webdev (client , logged_user ):
42146 assign_role (logged_user , 'webdev' )
43147 client .force_login (logged_user )
44148 return client
45149
46150
47151@pytest .fixture
48- def client_with_member (client , django_user_model , logged_user ):
152+ def client_with_member (client , logged_user ):
49153 assign_role (logged_user , 'member' )
50154 client .force_login (logged_user )
51155 return client
52156
53157
54158@pytest .fixture
55- def client_with_client (client , django_user_model , logged_user ):
159+ def client_with_client (client , logged_user ):
56160 assign_role (logged_user , 'client' )
57161 client .force_login (logged_user )
58162 return client
0 commit comments