mirror of
https://github.com/ansible/awx.git
synced 2026-03-26 21:35:01 -02:30
Add tests for AWX collection credential fixes (#3893)
This commit is contained in:
@@ -32,7 +32,6 @@ def test_create_job_template(run_module, admin_user, project, inventory):
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
@pytest.mark.xfail(reason='Known limitation and needs to be fixed.')
|
||||
def test_create_job_template_with_old_machine_cred(run_module, admin_user, project, inventory, machine_credential):
|
||||
|
||||
module_args = {
|
||||
|
||||
72
awx_collection/test/awx/test_send_receive.py
Normal file
72
awx_collection/test/awx/test_send_receive.py
Normal file
@@ -0,0 +1,72 @@
|
||||
import pytest
|
||||
import json
|
||||
|
||||
from awx.main.models import (
|
||||
Organization,
|
||||
Project,
|
||||
Inventory,
|
||||
Host,
|
||||
CredentialType,
|
||||
Credential,
|
||||
JobTemplate
|
||||
)
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
def test_receive_send_jt(run_module, admin_user, mocker):
|
||||
org = Organization.objects.create(name='SRtest')
|
||||
proj = Project.objects.create(
|
||||
name='SRtest',
|
||||
playbook_files=['debug.yml'],
|
||||
scm_type='git',
|
||||
scm_url='https://github.com/ansible/test-playbooks.git',
|
||||
organization=org,
|
||||
allow_override=True # so we do not require playbooks populated
|
||||
)
|
||||
inv = Inventory.objects.create(name='SRtest', organization=org)
|
||||
Host.objects.create(name='SRtest', inventory=inv)
|
||||
ct = CredentialType.defaults['ssh']()
|
||||
ct.save()
|
||||
cred = Credential.objects.create(
|
||||
name='SRtest',
|
||||
credential_type=ct,
|
||||
organization=org
|
||||
)
|
||||
jt = JobTemplate.objects.create(
|
||||
name='SRtest',
|
||||
project=proj,
|
||||
inventory=inv,
|
||||
playbook='helloworld.yml'
|
||||
)
|
||||
jt.credentials.add(cred)
|
||||
jt.admin_role.members.add(admin_user) # work around send/receive bug
|
||||
|
||||
# receive everything
|
||||
result = run_module('tower_receive', dict(all=True), admin_user)
|
||||
|
||||
assert 'assets' in result, result
|
||||
assets = result['assets']
|
||||
assert not result.get('changed', True)
|
||||
assert set(a['asset_type'] for a in assets) == set((
|
||||
'organization', 'inventory', 'job_template', 'credential', 'project',
|
||||
'user'
|
||||
))
|
||||
|
||||
# delete everything
|
||||
for obj in (jt, inv, proj, cred, org):
|
||||
obj.delete()
|
||||
|
||||
def fake_wait(self, pk, parent_pk=None, **kwargs):
|
||||
return {"changed": True}
|
||||
|
||||
# recreate everything
|
||||
with mocker.patch('sys.stdin.isatty', return_value=True):
|
||||
with mocker.patch('tower_cli.models.base.MonitorableResource.wait'):
|
||||
result = run_module('tower_send', dict(assets=json.dumps(assets)), admin_user)
|
||||
|
||||
assert not result.get('failed'), result
|
||||
|
||||
new = JobTemplate.objects.get(name='SRtest')
|
||||
assert new.project.name == 'SRtest'
|
||||
assert new.inventory.name == 'SRtest'
|
||||
assert [cred.name for cred in new.credentials.all()] == ['SRtest']
|
||||
Reference in New Issue
Block a user