Skip to content

Commit 42e2321

Browse files
committed
Add a test for user access endpoint
1 parent 495ef82 commit 42e2321

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
import pytest
2+
3+
from ansible_base.lib.utils.response import get_relative_url
4+
5+
from test_app.models import User, Team
6+
7+
8+
@pytest.mark.django_db
9+
def test_user_access_list(admin_api_client, inv_rd, org_inv_rd, inventory, member_rd):
10+
url = get_relative_url('role-user-access', kwargs={'pk': inventory.pk, 'model_name': 'aap.inventory'})
11+
12+
u1 = User.objects.create(username='direct-inv-access')
13+
inv_rd.give_permission(u1, inventory)
14+
15+
u2 = User.objects.create(username='org-level-access')
16+
org_inv_rd.give_permission(u2, inventory.organization)
17+
18+
u3 = User.objects.create(username='team-via-access')
19+
team = Team.objects.create(name='proxy-team', organization=inventory.organization)
20+
inv_rd.give_permission(team, inventory)
21+
member_rd.give_permission(u3, team)
22+
23+
response = admin_api_client.get(url)
24+
assert response.status_code == 200
25+
26+
user_data = {}
27+
for user_detail in response.data['results']:
28+
user_data[user_detail['username']] = user_detail['role_assignments']
29+
30+
assert u1.username in user_data
31+
assert len(user_data[u1.username]) == 1
32+
assert user_data[u1.username][0]['type'] == 'direct'
33+
34+
assert u2.username in user_data
35+
assert len(user_data[u2.username]) == 1
36+
assert user_data[u2.username][0]['type'] == 'indirect'
37+
38+
assert u3.username in user_data
39+
assert len(user_data[u3.username]) == 1
40+
assert user_data[u3.username][0]['type'] == 'team'

0 commit comments

Comments
 (0)