@@ -323,3 +323,97 @@ def test_add_user_to_workspace_error(user_utils, requests_mock):
323323 user_utils .add_user_to_workspace (user_id , is_workspace_admin = True )
324324 assert get .call_count == 1
325325 assert put .call_count == 1
326+
327+
328+ def test_get_user_application_permissions (user_utils , requests_mock ):
329+ user_id = "user1"
330+ application_id = "manage"
331+ response_json = {
332+ "role" : "USER" ,
333+ "userId" : user_id ,
334+ "workspaceId" : MAS_WORKSPACE_ID ,
335+ "userUrl" : "https://api.yourmasdomain.com/users/joebloggs" ,
336+ "workspaceUrl" : "https://api.yourmasdomain.com/workspaces/myworkspace1"
337+ }
338+ get = requests_mock .get (
339+ f"{ MAS_API_URL } /workspaces/{ MAS_WORKSPACE_ID } /applications/{ application_id } /users/{ user_id } " ,
340+ request_headers = {"x-access-token" : TOKEN },
341+ json = response_json ,
342+ status_code = 200
343+ )
344+ assert user_utils .get_user_application_permissions (user_id , application_id ) == response_json
345+ assert get .call_count == 1
346+
347+
348+ def test_get_user_application_permissions_notfound (user_utils , requests_mock ):
349+ user_id = "user1"
350+ application_id = "manage"
351+ get = requests_mock .get (
352+ f"{ MAS_API_URL } /workspaces/{ MAS_WORKSPACE_ID } /applications/{ application_id } /users/{ user_id } " ,
353+ request_headers = {"x-access-token" : TOKEN },
354+ json = {"error" : "notfound" },
355+ status_code = 404
356+ )
357+ assert user_utils .get_user_application_permissions (user_id , application_id ) is None
358+ assert get .call_count == 1
359+
360+
361+ def test_get_user_application_permissions_error (user_utils , requests_mock ):
362+ user_id = "user1"
363+ application_id = "manage"
364+ get = requests_mock .get (
365+ f"{ MAS_API_URL } /workspaces/{ MAS_WORKSPACE_ID } /applications/{ application_id } /users/{ user_id } " ,
366+ request_headers = {"x-access-token" : TOKEN },
367+ json = {"error" : "internal" },
368+ status_code = 500
369+ )
370+ with pytest .raises (Exception ):
371+ user_utils .get_user_application_permissions (user_id , application_id )
372+ assert get .call_count == 1
373+
374+
375+ def test_set_user_application_permissions (user_utils , requests_mock ):
376+ user_id = "user1"
377+ application_id = "manage"
378+ get = requests_mock .get (
379+ f"{ MAS_API_URL } /workspaces/{ MAS_WORKSPACE_ID } /applications/{ application_id } /users/{ user_id } " ,
380+ request_headers = {"x-access-token" : TOKEN },
381+ json = {"error" : "notfound" },
382+ status_code = 404
383+ )
384+ put = requests_mock .put (
385+ f"{ MAS_API_URL } /workspaces/{ MAS_WORKSPACE_ID } /applications/{ application_id } /users/{ user_id } " ,
386+ request_headers = {"x-access-token" : TOKEN },
387+ json = {},
388+ status_code = 200
389+ )
390+ user_utils .set_user_application_permission (user_id , application_id , "USER" )
391+ assert get .call_count == 1
392+ assert put .call_count == 1
393+
394+
395+ def test_set_user_application_permissions_alreadyset (user_utils , requests_mock ):
396+ user_id = "user1"
397+ application_id = "manage"
398+ get_response_json = {
399+ "role" : "ADMINISTRATOR" ,
400+ "userId" : user_id ,
401+ "workspaceId" : MAS_WORKSPACE_ID ,
402+ "userUrl" : "https://api.yourmasdomain.com/users/joebloggs" ,
403+ "workspaceUrl" : "https://api.yourmasdomain.com/workspaces/myworkspace1"
404+ }
405+ get = requests_mock .get (
406+ f"{ MAS_API_URL } /workspaces/{ MAS_WORKSPACE_ID } /applications/{ application_id } /users/{ user_id } " ,
407+ request_headers = {"x-access-token" : TOKEN },
408+ json = get_response_json ,
409+ status_code = 200
410+ )
411+ put = requests_mock .put (
412+ f"{ MAS_API_URL } /workspaces/{ MAS_WORKSPACE_ID } /applications/{ application_id } /users/{ user_id } " ,
413+ request_headers = {"x-access-token" : TOKEN },
414+ json = {},
415+ status_code = 200
416+ )
417+ user_utils .set_user_application_permission (user_id , application_id , "USER" )
418+ assert get .call_count == 1
419+ assert put .call_count == 0
0 commit comments