84 lines
2.4 KiB
Python
84 lines
2.4 KiB
Python
from datetime import date
|
|
|
|
import pytest
|
|
|
|
from django.contrib.sessions.middleware import SessionMiddleware
|
|
|
|
from awx.main.models import User
|
|
from awx.api.versioning import reverse
|
|
|
|
|
|
#
|
|
# user creation
|
|
#
|
|
|
|
EXAMPLE_USER_DATA = {
|
|
"username": "affable",
|
|
"first_name": "a",
|
|
"last_name": "a",
|
|
"email": "a@a.com",
|
|
"is_superuser": False,
|
|
"password": "r$TyKiOCb#ED"
|
|
}
|
|
|
|
|
|
@pytest.mark.django_db
|
|
def test_user_create(post, admin):
|
|
response = post(reverse('api:user_list'), EXAMPLE_USER_DATA, admin, middleware=SessionMiddleware())
|
|
assert response.status_code == 201
|
|
assert not response.data['is_superuser']
|
|
assert not response.data['is_system_auditor']
|
|
|
|
|
|
@pytest.mark.django_db
|
|
def test_fail_double_create_user(post, admin):
|
|
response = post(reverse('api:user_list'), EXAMPLE_USER_DATA, admin, middleware=SessionMiddleware())
|
|
assert response.status_code == 201
|
|
|
|
response = post(reverse('api:user_list'), EXAMPLE_USER_DATA, admin, middleware=SessionMiddleware())
|
|
assert response.status_code == 400
|
|
|
|
|
|
@pytest.mark.django_db
|
|
def test_create_delete_create_user(post, delete, admin):
|
|
response = post(reverse('api:user_list'), EXAMPLE_USER_DATA, admin, middleware=SessionMiddleware())
|
|
assert response.status_code == 201
|
|
|
|
response = delete(reverse('api:user_detail', kwargs={'pk': response.data['id']}), admin,
|
|
middleware=SessionMiddleware())
|
|
assert response.status_code == 204
|
|
|
|
response = post(reverse('api:user_list'), EXAMPLE_USER_DATA, admin, middleware=SessionMiddleware())
|
|
print(response.data)
|
|
assert response.status_code == 201
|
|
|
|
|
|
@pytest.mark.django_db
|
|
def test_user_cannot_update_last_login(patch, admin):
|
|
assert admin.last_login is None
|
|
patch(
|
|
reverse('api:user_detail', kwargs={'pk': admin.pk}),
|
|
{'last_login': '2020-03-13T16:39:47.303016Z'},
|
|
admin,
|
|
middleware=SessionMiddleware()
|
|
)
|
|
assert User.objects.get(pk=admin.pk).last_login is None
|
|
|
|
|
|
@pytest.mark.django_db
|
|
def test_user_verify_attribute_created(admin, get):
|
|
assert admin.created == admin.date_joined
|
|
resp = get(
|
|
reverse('api:user_detail', kwargs={'pk': admin.pk}),
|
|
admin
|
|
)
|
|
assert resp.data['created'] == admin.date_joined
|
|
|
|
past = date(2020, 1, 1).isoformat()
|
|
for op, count in (('gt', 1), ('lt', 0)):
|
|
resp = get(
|
|
reverse('api:user_list') + f'?created__{op}={past}',
|
|
admin
|
|
)
|
|
assert resp.data['count'] == count
|