mirror of
https://github.com/ansible/awx.git
synced 2026-02-17 19:20:05 -03:30
Adds new modules for CRUD operations on the following endpoints: - api/v2/role_definitions - api/v2/role_user_assignments - api/v2/role_team_assignments Note: assignment is Create or Delete only Additional changes: - Currently DAB endpoints do not have "type" field on the resource list items. So this modifies the create_or_update_if_needed to allow manually specifying item type. Signed-off-by: Seth Foster <fosterbseth@gmail.com>
71 lines
2.3 KiB
Python
71 lines
2.3 KiB
Python
from __future__ import absolute_import, division, print_function
|
|
|
|
__metaclass__ = type
|
|
|
|
import pytest
|
|
|
|
from ansible_base.rbac.models import RoleUserAssignment
|
|
|
|
|
|
@pytest.mark.django_db
|
|
def test_create_new(run_module, admin_user, job_template, job_template_role_definition):
|
|
result = run_module(
|
|
'role_user_assignment',
|
|
{
|
|
'user': admin_user.username,
|
|
'object_id': job_template.id,
|
|
'role_definition': job_template_role_definition.name,
|
|
},
|
|
admin_user)
|
|
assert result['changed']
|
|
assert RoleUserAssignment.objects.filter(user=admin_user, object_id=job_template.id, role_definition=job_template_role_definition).exists()
|
|
|
|
|
|
@pytest.mark.django_db
|
|
def test_idempotence(run_module, admin_user, job_template, job_template_role_definition):
|
|
result = run_module(
|
|
'role_user_assignment',
|
|
{
|
|
'user': admin_user.username,
|
|
'object_id': job_template.id,
|
|
'role_definition': job_template_role_definition.name,
|
|
},
|
|
admin_user)
|
|
assert result['changed']
|
|
|
|
result = run_module(
|
|
'role_user_assignment',
|
|
{
|
|
'user': admin_user.username,
|
|
'object_id': job_template.id,
|
|
'role_definition': job_template_role_definition.name,
|
|
},
|
|
admin_user)
|
|
assert not result['changed']
|
|
|
|
|
|
@pytest.mark.django_db
|
|
def test_delete_existing(run_module, admin_user, job_template, job_template_role_definition):
|
|
result = run_module(
|
|
'role_user_assignment',
|
|
{
|
|
'user': admin_user.username,
|
|
'object_id': job_template.id,
|
|
'role_definition': job_template_role_definition.name,
|
|
},
|
|
admin_user)
|
|
assert result['changed']
|
|
assert RoleUserAssignment.objects.filter(user=admin_user, object_id=job_template.id, role_definition=job_template_role_definition).exists()
|
|
|
|
result = run_module(
|
|
'role_user_assignment',
|
|
{
|
|
'user': admin_user.username,
|
|
'object_id': job_template.id,
|
|
'role_definition': job_template_role_definition.name,
|
|
'state': 'absent'
|
|
},
|
|
admin_user)
|
|
assert result['changed']
|
|
assert not RoleUserAssignment.objects.filter(user=admin_user, object_id=job_template.id, role_definition=job_template_role_definition).exists()
|