mirror of
https://github.com/ansible/awx.git
synced 2026-01-21 06:28:01 -03:30
handle is_system_auditor case with unsaved users
This commit is contained in:
parent
14746eebe3
commit
8c64fa2fe1
@ -76,8 +76,12 @@ User.add_to_class('auditor_of_organizations', user_get_auditor_of_organizations)
|
||||
@property
|
||||
def user_is_system_auditor(user):
|
||||
if not hasattr(user, '_is_system_auditor'):
|
||||
user._is_system_auditor = user.roles.filter(
|
||||
singleton_name='system_auditor', role_field='system_auditor').exists()
|
||||
if user.pk:
|
||||
user._is_system_auditor = user.roles.filter(
|
||||
singleton_name='system_auditor', role_field='system_auditor').exists()
|
||||
else:
|
||||
# Odd case where user is unsaved, this should never be relied on
|
||||
user._is_system_auditor = False
|
||||
return user._is_system_auditor
|
||||
|
||||
|
||||
|
||||
@ -7,65 +7,41 @@ from django.core.urlresolvers 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'), {
|
||||
"username": "affable",
|
||||
"first_name": "a",
|
||||
"last_name": "a",
|
||||
"email": "a@a.com",
|
||||
"is_superuser": False,
|
||||
"password": "fo0m4nchU"
|
||||
}, admin)
|
||||
response = post(reverse('api:user_list'), EXAMPLE_USER_DATA, admin)
|
||||
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'), {
|
||||
"username": "affable",
|
||||
"first_name": "a",
|
||||
"last_name": "a",
|
||||
"email": "a@a.com",
|
||||
"is_superuser": False,
|
||||
"password": "fo0m4nchU"
|
||||
}, admin)
|
||||
response = post(reverse('api:user_list'), EXAMPLE_USER_DATA, admin)
|
||||
assert response.status_code == 201
|
||||
|
||||
response = post(reverse('api:user_list'), {
|
||||
"username": "affable",
|
||||
"first_name": "a",
|
||||
"last_name": "a",
|
||||
"email": "a@a.com",
|
||||
"is_superuser": False,
|
||||
"password": "fo0m4nchU"
|
||||
}, admin)
|
||||
response = post(reverse('api:user_list'), EXAMPLE_USER_DATA, admin)
|
||||
assert response.status_code == 400
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
def test_create_delete_create_user(post, delete, admin):
|
||||
response = post(reverse('api:user_list'), {
|
||||
"username": "affable",
|
||||
"first_name": "a",
|
||||
"last_name": "a",
|
||||
"email": "a@a.com",
|
||||
"is_superuser": False,
|
||||
"password": "fo0m4nchU"
|
||||
}, admin)
|
||||
response = post(reverse('api:user_list'), EXAMPLE_USER_DATA, admin)
|
||||
assert response.status_code == 201
|
||||
|
||||
response = delete(reverse('api:user_detail', args=(response.data['id'],)), admin)
|
||||
assert response.status_code == 204
|
||||
|
||||
response = post(reverse('api:user_list'), {
|
||||
"username": "affable",
|
||||
"first_name": "a",
|
||||
"last_name": "a",
|
||||
"email": "a@a.com",
|
||||
"is_superuser": False,
|
||||
"password": "fo0m4nchU"
|
||||
}, admin)
|
||||
response = post(reverse('api:user_list'), EXAMPLE_USER_DATA, admin)
|
||||
print(response.data)
|
||||
assert response.status_code == 201
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user