1010def test_user_access_list (admin_api_client , inv_rd , org_inv_rd , inventory , member_rd ):
1111 url = get_relative_url ('role-user-access' , kwargs = {'pk' : inventory .pk , 'model_name' : 'aap.inventory' })
1212
13- u1 = User .objects .create (username = 'direct-inv-access' )
13+ u1 = User .objects .create (username = 'direct-inv-access' , first_name = 'user' , last_name = 'one' )
1414 inv_rd .give_permission (u1 , inventory )
1515
1616 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
3333 assert detail_resp .status_code == 200 , detail_resp .data
3434 # This should have the same entries in a list view as the access list had in the assignments list
3535 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'
3639
3740 assert u1 .username in user_data
3841 assert len (user_data [u1 .username ]) == 1
@@ -112,3 +115,26 @@ def test_intermediary_role_display(admin_api_client, inventory, organization, me
112115 intermediary_names = [entry ['role_definition' ]['name' ] for entry in intermediary ]
113116 assert org_admin_inv_rd .name in intermediary_names
114117 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