10
10
def test_user_access_list (admin_api_client , inv_rd , org_inv_rd , inventory , member_rd ):
11
11
url = get_relative_url ('role-user-access' , kwargs = {'pk' : inventory .pk , 'model_name' : 'aap.inventory' })
12
12
13
- u1 = User .objects .create (username = 'direct-inv-access' )
13
+ u1 = User .objects .create (username = 'direct-inv-access' , first_name = 'user' , last_name = 'one' )
14
14
inv_rd .give_permission (u1 , inventory )
15
15
16
16
u2 = User .objects .create (username = 'org-level-access' )
@@ -33,6 +33,9 @@ def test_user_access_list(admin_api_client, inv_rd, org_inv_rd, inventory, membe
33
33
assert detail_resp .status_code == 200 , detail_resp .data
34
34
# This should have the same entries in a list view as the access list had in the assignments list
35
35
assert detail_resp .data ['count' ] == len (user_detail ['object_role_assignments' ])
36
+ if user_detail ['username' ] == u1 .username :
37
+ assert user_detail ['first_name' ] == 'user'
38
+ assert user_detail ['last_name' ] == 'one'
36
39
37
40
assert u1 .username in user_data
38
41
assert len (user_data [u1 .username ]) == 1
@@ -112,3 +115,26 @@ def test_intermediary_role_display(admin_api_client, inventory, organization, me
112
115
intermediary_names = [entry ['role_definition' ]['name' ] for entry in intermediary ]
113
116
assert org_admin_inv_rd .name in intermediary_names
114
117
assert org_view_inv_rd .name in intermediary_names
118
+
119
+
120
+ @pytest .mark .django_db
121
+ def test_no_duplicates (rando , inv_rd , inventory , org_inv_rd , admin_api_client ):
122
+ inv_rd .give_permission (rando , inventory )
123
+ org_inv_rd .give_permission (rando , inventory .organization )
124
+
125
+ # the admin user themselves will show up, so filter superusers out
126
+ url = get_relative_url ('role-user-access' , kwargs = {'pk' : inventory .pk , 'model_name' : 'aap.inventory' }) + '?is_superuser=false'
127
+ response = admin_api_client .get (url )
128
+ assert response .status_code == 200 , response .data
129
+ assert response .data ['count' ] == 1 , response .data
130
+
131
+
132
+ @pytest .mark .django_db
133
+ def test_no_duplicates_team (team , inv_rd , inventory , org_inv_rd , admin_api_client ):
134
+ inv_rd .give_permission (team , inventory )
135
+ org_inv_rd .give_permission (team , inventory .organization )
136
+
137
+ url = get_relative_url ('role-team-access' , kwargs = {'pk' : inventory .pk , 'model_name' : 'aap.inventory' })
138
+ response = admin_api_client .get (url )
139
+ assert response .status_code == 200 , response .data
140
+ assert response .data ['count' ] == 1 , response .data
0 commit comments