@@ -181,170 +181,3 @@ def test_deputy_group_leader_can_delete_group(self):
181
181
response = self .client .delete (self .id_url (online_group .id ))
182
182
183
183
self .assertEqual (response .status_code , status .HTTP_204_NO_CONTENT )
184
-
185
-
186
- class GroupMemberTestCase (APITestCase ):
187
- @staticmethod
188
- def create_group_roles ():
189
- for role_type in RoleType .values :
190
- GroupRole .objects .create (role_type = role_type )
191
-
192
- @staticmethod
193
- def get_group_role (role_type : str ) -> GroupRole :
194
- return GroupRole .objects .get (role_type = role_type )
195
-
196
- def get_role (self , role : RoleType ):
197
- return GroupRole .get_for_type (role )
198
-
199
- def _create_group (self , ** kwargs ) -> OnlineGroup :
200
- leader_role = self .get_group_role (RoleType .LEADER )
201
- deputy_leader_role = self .get_group_role (RoleType .DEPUTY_LEADER )
202
- group : OnlineGroup = G (OnlineGroup , ** kwargs )
203
- group .admin_roles .add (leader_role )
204
- group .admin_roles .add (deputy_leader_role )
205
- return group
206
-
207
- def setUp (self ):
208
- self .user : User = generate_user (username = "test_user" )
209
- self .user .is_superuser = True
210
- self .user .save ()
211
- self .user .refresh_from_db ()
212
- self .client .force_authenticate (user = self .user )
213
- self .other_user : User = generate_user (username = "other_user" )
214
-
215
- self .url = reverse ("group_members-list" )
216
- self .id_url = lambda _id : self .url + str (_id ) + "/"
217
- self .create_group_roles ()
218
-
219
- self .group_name = "Noenkom"
220
- self .group_name_long = "Noenkomiteen"
221
- self .group = G (Group , name = self .group_name )
222
- self .group_data = {
223
- "group" : self .group .id ,
224
- "name_short" : self .group_name ,
225
- "name_long" : self .group_name_long ,
226
- }
227
- self .create_group = lambda : self ._create_group (
228
- group = self .group , name_short = self .group_name , name_long = self .group_name_long
229
- )
230
- self .online_group = self .create_group ()
231
-
232
- self .membership_data = {"group" : self .online_group .id , "user" : self .user .id }
233
- self .create_membership = lambda : GroupMember .objects .create (
234
- user = self .user , group = self .online_group
235
- )
236
-
237
- def test_group_members_returns_200 (self ):
238
- response = self .client .get (self .url )
239
-
240
- self .assertEqual (response .status_code , status .HTTP_200_OK )
241
-
242
- def test_un_authenticated_user_gets_200 (self ):
243
- self .client .force_authenticate (user = None )
244
- response = self .client .get (self .url )
245
-
246
- self .assertEqual (response .status_code , status .HTTP_200_OK )
247
-
248
- def test_superuser_can_create_memberships (self ):
249
- self .user .save ()
250
- response = self .client .post (self .url , self .membership_data )
251
-
252
- self .assertEqual (response .status_code , status .HTTP_201_CREATED )
253
-
254
- def test_user_cannot_have_multiple_memberships_in_one_group (self ):
255
- self .create_membership ()
256
- response = self .client .post (self .url , self .membership_data )
257
-
258
- self .assertEqual (response .status_code , status .HTTP_400_BAD_REQUEST )
259
- self .assertEqual (
260
- response .json ().get ("non_field_errors" ),
261
- ["Feltene user, group må gjøre et unikt sett." ],
262
- )
263
-
264
- def test_regular_user_cannot_create_groups (self ):
265
- self .user .is_superuser = False
266
- self .user .save ()
267
-
268
- response = self .client .post (self .url , self .membership_data )
269
- self .assertEqual (response .status_code , status .HTTP_403_FORBIDDEN )
270
-
271
- def test_users_with_permission_can_create_memberships (self ):
272
- self .user .is_superuser = False
273
- self .user .save ()
274
- permission = Permission .objects .get (codename = "add_groupmember" )
275
- self .user .user_permissions .add (permission )
276
-
277
- response = self .client .post (self .url , self .membership_data )
278
-
279
- self .assertEqual (response .status_code , status .HTTP_201_CREATED )
280
-
281
- def test_superuser_can_delete_memberships (self ):
282
- membership = self .create_membership ()
283
-
284
- response = self .client .delete (self .id_url (membership .id ))
285
-
286
- self .assertEqual (response .status_code , status .HTTP_204_NO_CONTENT )
287
-
288
- def test_regular_user_cannot_delete_memberships (self ):
289
- self .user .is_superuser = False
290
- self .user .save ()
291
- membership = self .create_membership ()
292
-
293
- response = self .client .delete (self .id_url (membership .id ))
294
-
295
- self .assertEqual (response .status_code , status .HTTP_403_FORBIDDEN )
296
-
297
- def test_group_leader_can_delete_memberships (self ):
298
- membership = self .create_membership ()
299
- membership .roles .add (self .get_group_role (RoleType .LEADER ))
300
- self .user .is_superuser = False
301
- self .user .save ()
302
-
303
- response = self .client .delete (self .id_url (membership .id ))
304
-
305
- self .assertEqual (response .status_code , status .HTTP_204_NO_CONTENT )
306
-
307
- def test_deputy_group_leader_can_delete_memberships (self ):
308
- membership = self .create_membership ()
309
- membership .roles .add (self .get_group_role (RoleType .LEADER ))
310
- self .user .is_superuser = False
311
- self .user .save ()
312
-
313
- response = self .client .delete (self .id_url (membership .id ))
314
-
315
- self .assertEqual (response .status_code , status .HTTP_204_NO_CONTENT )
316
-
317
- def test_super_user_can_assign_roles_to_member (self ):
318
- self .user .is_superuser = True
319
- self .user .save ()
320
-
321
- role_ids = [self .get_group_role (RoleType .TREASURER ).id ]
322
- membership = self .create_membership ()
323
-
324
- response = self .client .patch (self .id_url (membership .id ), {"roles" : role_ids })
325
-
326
- self .assertEqual (response .status_code , status .HTTP_200_OK )
327
- self .assertEqual (response .json ().get ("roles" ), role_ids )
328
-
329
- def test_group_leader_can_assign_roles_to_member (self ):
330
- self .user .is_superuser = False
331
- self .user .save ()
332
-
333
- membership = self .create_membership ()
334
- membership .roles .add (self .get_group_role (RoleType .LEADER ).id )
335
- role_id = self .get_group_role (RoleType .TREASURER ).id
336
-
337
- response = self .client .patch (self .id_url (membership .id ), {"roles" : [role_id ]})
338
-
339
- self .assertEqual (response .status_code , status .HTTP_200_OK )
340
- self .assertIn (role_id , response .json ().get ("roles" ))
341
-
342
- def test_regular_user_cannot_assign_roles_to_member (self ):
343
- self .user .is_superuser = False
344
- self .user .save ()
345
-
346
- membership = self .create_membership ()
347
-
348
- response = self .client .patch (self .id_url (membership .id ))
349
-
350
- self .assertEqual (response .status_code , status .HTTP_403_FORBIDDEN )
0 commit comments