Skip to content

Commit f5b4e94

Browse files
committed
test: add unit tests for get_user_role_assignments_for_role function
1 parent 2c9d4eb commit f5b4e94

1 file changed

Lines changed: 34 additions & 0 deletions

File tree

openedx_authz/tests/api/test_users.py

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
batch_unassign_role_from_users,
1010
get_all_user_role_assignments_in_scope,
1111
get_user_role_assignments,
12+
get_user_role_assignments_for_role,
1213
get_user_role_assignments_for_role_in_scope,
1314
get_user_role_assignments_in_scope,
1415
is_user_allowed,
@@ -52,6 +53,39 @@ def _assign_roles_to_users(
5253
class TestUserRoleAssignments(UserAssignmentsSetupMixin):
5354
"""Test suite for user-role assignment API functions."""
5455

56+
@data(
57+
("alice", roles.LIBRARY_ADMIN.external_key, 1, {"lib:Org1:math_101"}),
58+
("eve", roles.LIBRARY_ADMIN.external_key, 1, {"lib:Org2:physics_401"}),
59+
(
60+
"liam",
61+
roles.LIBRARY_AUTHOR.external_key,
62+
3,
63+
{"lib:Org4:art_101", "lib:Org4:art_201", "lib:Org4:art_301"},
64+
),
65+
("alice", roles.LIBRARY_AUTHOR.external_key, 0, set()),
66+
("non_existent_user", roles.LIBRARY_ADMIN.external_key, 0, set()),
67+
)
68+
@unpack
69+
def test_get_user_role_assignments_for_role(
70+
self,
71+
username,
72+
role_external_key,
73+
expected_count,
74+
expected_scopes,
75+
):
76+
role_assignments = get_user_role_assignments_for_role(
77+
user_external_key=username,
78+
role_external_key=role_external_key,
79+
)
80+
81+
self.assertEqual(len(role_assignments), expected_count)
82+
83+
role_names = {r.external_key for assignment in role_assignments for r in assignment.roles}
84+
self.assertEqual(role_names, set() if expected_count == 0 else {role_external_key})
85+
86+
scopes = {assignment.scope.external_key for assignment in role_assignments}
87+
self.assertEqual(scopes, expected_scopes)
88+
5589
@data(
5690
("john", roles.LIBRARY_ADMIN.external_key, "lib:Org1:math_101", False),
5791
("jane", roles.LIBRARY_USER.external_key, "lib:Org1:english_101", False),

0 commit comments

Comments
 (0)