mirror of
https://github.com/ansible/awx.git
synced 2026-01-11 10:00:01 -03:30
Resolving comment and updating tests
This commit is contained in:
parent
8b881d195d
commit
6d08e21511
@ -575,7 +575,13 @@ class TowerModule(AnsibleModule):
|
||||
self.exit_json(**self.json_output)
|
||||
|
||||
# We need to be able to recursevly step through fields in the case of inputs for credentials.
|
||||
# They are dicts and we can't just compare them at the top level because the dict returned from the tower api will have fields like $encrypted$
|
||||
# They are dicts and we can't just compare them at the top level because the dict from the tower api may have more fields that we have.
|
||||
# For example, say someone did:
|
||||
# - tower_credential:
|
||||
# name: 'a cred'
|
||||
# username: 'John'
|
||||
# Our new dict would be like { 'username': 'new_name' }
|
||||
# But the existing cred from tower might come back as: { 'username': 'new_name', 'password': '$encrypted$', 'field2': 'something else' }
|
||||
@staticmethod
|
||||
def compare_fields(new_item, existing_item):
|
||||
needs_update = False
|
||||
|
||||
@ -106,7 +106,7 @@ def test_create_custom_credential_type(run_module, admin_user):
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
def test_kind_ct_exclusivity(run_module, admin_user, organization, cred_type, silence_deprecation):
|
||||
def test_ct_precedence_over_kind(run_module, admin_user, organization, cred_type, silence_deprecation):
|
||||
result = run_module('tower_credential', dict(
|
||||
name='A credential',
|
||||
organization=organization.name,
|
||||
@ -114,22 +114,28 @@ def test_kind_ct_exclusivity(run_module, admin_user, organization, cred_type, si
|
||||
credential_type=cred_type.name,
|
||||
state='present'
|
||||
), admin_user)
|
||||
assert result.get('failed', False), result.get('msg', result)
|
||||
assert result['msg'] == 'parameters are mutually exclusive: kind|credential_type'
|
||||
assert not result.get('failed', False), result.get('msg', result)
|
||||
|
||||
cred = Credential.objects.get(name='A credential')
|
||||
|
||||
assert cred.credential_type == cred_type.name
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
def test_input_exclusivity(run_module, admin_user, organization):
|
||||
def test_input_overrides_old_fields(run_module, admin_user, organization):
|
||||
result = run_module('tower_credential', dict(
|
||||
name='A credential',
|
||||
name='A Vault credential',
|
||||
organization=organization.name,
|
||||
kind='ssh',
|
||||
inputs={'token': '7rEZK38DJl58A7RxA6EC7lLvUHbBQ1'},
|
||||
security_token='7rEZK38DJl58A7RxA6EC7lLvUHbBQ1',
|
||||
kind='Vault',
|
||||
inputs={'vault_id': 'asdf'},
|
||||
vault_id='1234',
|
||||
state='present'
|
||||
), admin_user)
|
||||
assert result.get('failed', False), result
|
||||
assert result['msg'] == 'parameters are mutually exclusive: inputs|security_token'
|
||||
assert not result.get('failed', False), result
|
||||
|
||||
cred = Credential.objects.get(name='A Vault credential')
|
||||
|
||||
assert cred.inputs.vault_id == 'asdf'
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user