tests: copy/paste users tests to member users api (#50889)

This commit is contained in:
Nicolas Roche 2021-02-22 23:13:38 +01:00
parent ed01a4e8c3
commit b21d5a56b1
1 changed files with 103 additions and 0 deletions

View File

@ -186,6 +186,17 @@ def test_api_users_list(app, user):
assert resp.json['next'] is None
def test_api_member_users_list(app, user, simple_role):
app.authorization = ('Basic', (user.username, user.username))
url = reverse('a2-api-role-members-list', kwargs={'role_uuid': simple_role.uuid})
simple_role.members.add(user)
resp = app.get(url)
assert isinstance(resp.json, dict)
assert set(['previous', 'next', 'results']) == set(resp.json.keys())
assert resp.json['previous'] is None
assert resp.json['next'] is None
def test_api_users_update_with_email_verified(settings, app, admin, simple_user):
from django.contrib.auth import get_user_model
@ -375,6 +386,41 @@ def test_api_users_list_by_authorized_service(app, superuser):
assert len(resp.json['results']) == 4
def test_api_member_users_list_by_authorized_service(app, superuser, simple_role):
from authentic2.models import Service
app.authorization = ('Basic', (superuser.username, superuser.username))
url = reverse('a2-api-role-members-list', kwargs={'role_uuid': simple_role.uuid})
user1 = User.objects.create(username='user1')
user2 = User.objects.create(username='user2')
user3 = User.objects.create(username='user3')
role1 = Role.objects.create(name='role1')
role2 = Role.objects.create(name='role2')
role1.add_child(role2)
user1.roles.set([role1])
user2.roles.set([role2])
service1 = Service.objects.create(ou=get_default_ou(), name='service1', slug='service1')
service1.add_authorized_role(role1)
service2 = Service.objects.create(ou=get_default_ou(), name='service2', slug='service2')
for user in superuser, user1, user2, user3:
simple_role.members.add(user)
resp = app.get(url)
assert len(resp.json['results']) == 4
resp = app.get(url + '?service-ou=default&service-slug=service1')
assert len(resp.json['results']) == 2
assert set(user['username'] for user in resp.json['results']) == set(['user1', 'user2'])
resp = app.get(url + '?service-ou=default&service-slug=service2')
assert len(resp.json['results']) == 4
def test_api_users_list_search_text(app, superuser):
app.authorization = ('Basic', (superuser.username, superuser.username))
User = get_user_model()
@ -390,6 +436,23 @@ def test_api_users_list_search_text(app, superuser):
assert not len(results)
def test_api_member_users_list_search_text(app, superuser, simple_role):
app.authorization = ('Basic', (superuser.username, superuser.username))
url = reverse('a2-api-role-members-list', kwargs={'role_uuid': simple_role.uuid})
User = get_user_model()
someuser = User.objects.create(username='someuser')
simple_role.members.add(someuser)
resp = app.get(url + '?q=some')
results = resp.json['results']
assert len(results) == 1
assert results[0]['username'] == 'someuser'
someuser.delete()
resp = app.get(url + '?q=some')
results = resp.json['results']
assert len(results) == 0
def test_api_users_create(settings, app, api_user):
from django.contrib.auth import get_user_model
@ -1981,6 +2044,28 @@ def test_filter_users_by_service(app, admin, simple_user, role_random, service):
assert len(resp.json['results']) == 1
def test_filter_member_users_by_service(app, admin, simple_user, simple_role, role_random, service):
app.authorization = ('Basic', (admin.username, admin.username))
url = reverse('a2-api-role-members-list', kwargs={'role_uuid': simple_role.uuid})
simple_role.members.add(admin)
simple_role.members.add(simple_user)
resp = app.get(url)
assert len(resp.json['results']) == 2
resp = app.get(url + '?service-slug=xxx')
assert len(resp.json['results']) == 0
resp = app.get(url + '?service-slug=service&service-ou=default')
assert len(resp.json['results']) == 2
role_random.members.add(simple_user)
AuthorizedRole.objects.get_or_create(service=service, role=role_random)
resp = app.get(url + '?service-slug=service&service-ou=default')
assert len(resp.json['results']) == 1
def test_filter_users_by_last_modification(app, admin, simple_user, freezer):
app.authorization = ('Basic', (admin.username, admin.username))
@ -1996,6 +2081,24 @@ def test_filter_users_by_last_modification(app, admin, simple_user, freezer):
assert len(resp.json['results']) == 0
def test_filter_member_users_by_last_modification(app, admin, simple_user, simple_role, freezer):
app.authorization = ('Basic', (admin.username, admin.username))
url = reverse('a2-api-role-members-list', kwargs={'role_uuid': simple_role.uuid})
simple_role.members.add(admin)
simple_role.members.add(simple_user)
freezer.move_to('2019-10-27T02:00:00Z')
admin.save()
simple_user.save()
# AmbiguousTimeError
resp = app.get(url, params={'modified__gt': '2019-10-27T02:58:07'})
assert len(resp.json['results']) == 2
resp = app.get(url, params={'modified__lt': '2019-10-27T02:58:07'})
assert len(resp.json['results']) == 0
def test_free_text_search(app, admin, settings):
settings.LANGUAGE_CODE = 'fr' # use fr date format