@@ -285,3 +285,63 @@ def test_user_workflow(self, user="unit_test_user"):
285285 reply = nebula_connection_object .delete_user (user )
286286 self .assertEqual (reply ["status_code" ], 200 )
287287 self .assertEqual (reply ["reply" ], {})
288+
289+ def test_user_group_workflow (self , user = "unit_test_user" , user_group = "unit_test_user_group" ,
290+ app = "unit_test_device_group_app" ):
291+ nebula_connection_object = nebula_connection ()
292+
293+ # make sure no user & user group exists prior to the run
294+ nebula_connection_object .delete_user (user )
295+ nebula_connection_object .delete_user_group (user_group )
296+ nebula_connection_object .delete_app (app )
297+
298+ # creating a user that will be used in the tests
299+ user_config = {"password" : "unit_test_password" , "token" : "unit_test_token" }
300+ nebula_connection_object .create_user (user , user_config )
301+
302+ # creating a app that will be used in the tests
303+ create_temp_app (nebula_connection_object , app )
304+
305+ # check creating a user group
306+ user_group_config = {
307+ "group_members" : [user ],
308+ "pruning_allowed" : True ,
309+ "apps" : {app : "rw" },
310+ "device_groups" : {},
311+ "admin" : False
312+ }
313+
314+ reply = nebula_connection_object .create_user_group (user_group , user_group_config )
315+ self .assertEqual (reply ["status_code" ], 200 )
316+ self .assertEqual (reply ["reply" ]["user_group" ], user_group )
317+ self .assertEqual (reply ["reply" ]["group_members" ], [user ])
318+ self .assertTrue (reply ["reply" ]["pruning_allowed" ])
319+ self .assertEqual (reply ["reply" ]["apps" ], {app : "rw" })
320+ self .assertEqual (reply ["reply" ]["device_groups" ], {})
321+ self .assertFalse (reply ["reply" ]["admin" ])
322+
323+ # check getting user group info
324+ reply = nebula_connection_object .list_user_group (user_group )
325+ self .assertEqual (reply ["status_code" ], 200 )
326+ self .assertEqual (reply ["reply" ]["user_group" ], user_group )
327+ self .assertEqual (reply ["reply" ]["group_members" ], [user ])
328+ self .assertTrue (reply ["reply" ]["pruning_allowed" ])
329+ self .assertEqual (reply ["reply" ]["apps" ], {app : "rw" })
330+ self .assertEqual (reply ["reply" ]["device_groups" ], {})
331+ self .assertFalse (reply ["reply" ]["admin" ])
332+
333+ # check updating a user group
334+ user_group_config = {"admin" : True }
335+ reply = nebula_connection_object .update_user_group (user_group , user_group_config )
336+ self .assertEqual (reply ["status_code" ], 200 )
337+ self .assertEqual (reply ["reply" ]["user_group" ], user_group )
338+ self .assertEqual (reply ["reply" ]["group_members" ], [user ])
339+ self .assertTrue (reply ["reply" ]["pruning_allowed" ])
340+ self .assertEqual (reply ["reply" ]["apps" ], {app : "rw" })
341+ self .assertEqual (reply ["reply" ]["device_groups" ], {})
342+ self .assertTrue (reply ["reply" ]["admin" ])
343+
344+ # check deleting a user group
345+ reply = nebula_connection_object .delete_user_group (user_group )
346+ self .assertEqual (reply ["status_code" ], 200 )
347+ self .assertEqual (reply ["reply" ], {})
0 commit comments