Skip to content

Commit 395ea42

Browse files
committed
more unit tests
1 parent db3c76b commit 395ea42

1 file changed

Lines changed: 94 additions & 0 deletions

File tree

test/src/test_users.py

Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)