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