mirror of
https://github.com/ansible/awx.git
synced 2026-01-20 22:18:01 -03:30
65 lines
2.3 KiB
Python
65 lines
2.3 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
|