mirror of
https://github.com/ansible/awx.git
synced 2026-08-01 10:29:56 -02:30
move code linting to a stricter pep8-esque auto-formatting tool, black
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
from __future__ import (absolute_import, division, print_function)
|
||||
from __future__ import absolute_import, division, print_function
|
||||
|
||||
__metaclass__ = type
|
||||
|
||||
import pytest
|
||||
@@ -7,19 +8,17 @@ from awx.main.models import NotificationTemplate, Job
|
||||
|
||||
|
||||
def compare_with_encrypted(model_config, param_config):
|
||||
'''Given a model_config from the database, assure that this is consistent
|
||||
"""Given a model_config from the database, assure that this is consistent
|
||||
with the config given in the notification_configuration parameter
|
||||
this requires handling of password fields
|
||||
'''
|
||||
"""
|
||||
for key, model_val in model_config.items():
|
||||
param_val = param_config.get(key, 'missing')
|
||||
if isinstance(model_val, str) and (model_val.startswith('$encrypted$') or param_val.startswith('$encrypted$')):
|
||||
assert model_val.startswith('$encrypted$') # must be saved as encrypted
|
||||
assert len(model_val) > len('$encrypted$')
|
||||
else:
|
||||
assert model_val == param_val, 'Config key {0} did not match, (model: {1}, input: {2})'.format(
|
||||
key, model_val, param_val
|
||||
)
|
||||
assert model_val == param_val, 'Config key {0} did not match, (model: {1}, input: {2})'.format(key, model_val, param_val)
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
@@ -31,15 +30,20 @@ def test_create_modify_notification_template(run_module, admin_user, organizatio
|
||||
'recipients': ['foo2@invalid.com'],
|
||||
'host': 'smtp.example.com',
|
||||
'port': 25,
|
||||
'use_tls': False, 'use_ssl': False,
|
||||
'timeout': 4
|
||||
'use_tls': False,
|
||||
'use_ssl': False,
|
||||
'timeout': 4,
|
||||
}
|
||||
result = run_module('tower_notification_template', dict(
|
||||
name='foo-notification-template',
|
||||
organization=organization.name,
|
||||
notification_type='email',
|
||||
notification_configuration=nt_config,
|
||||
), admin_user)
|
||||
result = run_module(
|
||||
'tower_notification_template',
|
||||
dict(
|
||||
name='foo-notification-template',
|
||||
organization=organization.name,
|
||||
notification_type='email',
|
||||
notification_configuration=nt_config,
|
||||
),
|
||||
admin_user,
|
||||
)
|
||||
assert not result.get('failed', False), result.get('msg', result)
|
||||
assert result.pop('changed', None), result
|
||||
|
||||
@@ -49,22 +53,30 @@ def test_create_modify_notification_template(run_module, admin_user, organizatio
|
||||
|
||||
# Test no-op, this is impossible if the notification_configuration is given
|
||||
# because we cannot determine if password fields changed
|
||||
result = run_module('tower_notification_template', dict(
|
||||
name='foo-notification-template',
|
||||
organization=organization.name,
|
||||
notification_type='email',
|
||||
), admin_user)
|
||||
result = run_module(
|
||||
'tower_notification_template',
|
||||
dict(
|
||||
name='foo-notification-template',
|
||||
organization=organization.name,
|
||||
notification_type='email',
|
||||
),
|
||||
admin_user,
|
||||
)
|
||||
assert not result.get('failed', False), result.get('msg', result)
|
||||
assert not result.pop('changed', None), result
|
||||
|
||||
# Test a change in the configuration
|
||||
nt_config['timeout'] = 12
|
||||
result = run_module('tower_notification_template', dict(
|
||||
name='foo-notification-template',
|
||||
organization=organization.name,
|
||||
notification_type='email',
|
||||
notification_configuration=nt_config,
|
||||
), admin_user)
|
||||
result = run_module(
|
||||
'tower_notification_template',
|
||||
dict(
|
||||
name='foo-notification-template',
|
||||
organization=organization.name,
|
||||
notification_type='email',
|
||||
notification_configuration=nt_config,
|
||||
),
|
||||
admin_user,
|
||||
)
|
||||
assert not result.get('failed', False), result.get('msg', result)
|
||||
assert result.pop('changed', None), result
|
||||
|
||||
@@ -74,39 +86,46 @@ def test_create_modify_notification_template(run_module, admin_user, organizatio
|
||||
|
||||
@pytest.mark.django_db
|
||||
def test_invalid_notification_configuration(run_module, admin_user, organization):
|
||||
result = run_module('tower_notification_template', dict(
|
||||
name='foo-notification-template',
|
||||
organization=organization.name,
|
||||
notification_type='email',
|
||||
notification_configuration={},
|
||||
), admin_user)
|
||||
result = run_module(
|
||||
'tower_notification_template',
|
||||
dict(
|
||||
name='foo-notification-template',
|
||||
organization=organization.name,
|
||||
notification_type='email',
|
||||
notification_configuration={},
|
||||
),
|
||||
admin_user,
|
||||
)
|
||||
assert result.get('failed', False), result.get('msg', result)
|
||||
assert 'Missing required fields for Notification Configuration' in result['msg']
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
def test_deprecated_to_modern_no_op(run_module, admin_user, organization):
|
||||
nt_config = {
|
||||
'url': 'http://www.example.com/hook',
|
||||
'headers': {
|
||||
'X-Custom-Header': 'value123'
|
||||
}
|
||||
}
|
||||
result = run_module('tower_notification_template', dict(
|
||||
name='foo-notification-template',
|
||||
organization=organization.name,
|
||||
notification_type='webhook',
|
||||
notification_configuration=nt_config,
|
||||
), admin_user)
|
||||
nt_config = {'url': 'http://www.example.com/hook', 'headers': {'X-Custom-Header': 'value123'}}
|
||||
result = run_module(
|
||||
'tower_notification_template',
|
||||
dict(
|
||||
name='foo-notification-template',
|
||||
organization=organization.name,
|
||||
notification_type='webhook',
|
||||
notification_configuration=nt_config,
|
||||
),
|
||||
admin_user,
|
||||
)
|
||||
assert not result.get('failed', False), result.get('msg', result)
|
||||
assert result.pop('changed', None), result
|
||||
|
||||
result = run_module('tower_notification_template', dict(
|
||||
name='foo-notification-template',
|
||||
organization=organization.name,
|
||||
notification_type='webhook',
|
||||
notification_configuration=nt_config,
|
||||
), admin_user)
|
||||
result = run_module(
|
||||
'tower_notification_template',
|
||||
dict(
|
||||
name='foo-notification-template',
|
||||
organization=organization.name,
|
||||
notification_type='webhook',
|
||||
notification_configuration=nt_config,
|
||||
),
|
||||
admin_user,
|
||||
)
|
||||
assert not result.get('failed', False), result.get('msg', result)
|
||||
assert not result.pop('changed', None), result
|
||||
|
||||
@@ -119,21 +138,20 @@ def test_build_notification_message_undefined(run_module, admin_user, organizati
|
||||
like "{{ job.created_by.first_name | default('unknown') }}"."""
|
||||
job = Job.objects.create(name='foobar')
|
||||
|
||||
nt_config = {
|
||||
'url': 'http://www.example.com/hook',
|
||||
'headers': {
|
||||
'X-Custom-Header': 'value123'
|
||||
}
|
||||
}
|
||||
nt_config = {'url': 'http://www.example.com/hook', 'headers': {'X-Custom-Header': 'value123'}}
|
||||
custom_start_template = {'body': '{"started_by": "{{ job.summary_fields.created_by.username | default(\'My Placeholder\') }}"}'}
|
||||
messages = {'started': custom_start_template, 'success': None, 'error': None, 'workflow_approval': None}
|
||||
result = run_module('tower_notification_template', dict(
|
||||
name='foo-notification-template',
|
||||
organization=organization.name,
|
||||
notification_type='webhook',
|
||||
notification_configuration=nt_config,
|
||||
messages=messages,
|
||||
), admin_user)
|
||||
result = run_module(
|
||||
'tower_notification_template',
|
||||
dict(
|
||||
name='foo-notification-template',
|
||||
organization=organization.name,
|
||||
notification_type='webhook',
|
||||
notification_configuration=nt_config,
|
||||
messages=messages,
|
||||
),
|
||||
admin_user,
|
||||
)
|
||||
nt = NotificationTemplate.objects.get(id=result['id'])
|
||||
|
||||
body = job.build_notification_message(nt, 'running')
|
||||
|
||||
Reference in New Issue
Block a user