mirror of
https://github.com/ansible/awx.git
synced 2026-03-19 09:57:33 -02:30
save/validate messages
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
import pytest
|
||||
from rest_framework.serializers import ValidationError
|
||||
|
||||
# AWX
|
||||
from awx.api.serializers import NotificationTemplateSerializer
|
||||
|
||||
|
||||
class StubNotificationTemplate():
|
||||
notification_type = 'email'
|
||||
|
||||
|
||||
class TestNotificationTemplateSerializer():
|
||||
|
||||
@pytest.mark.parametrize('valid_messages',
|
||||
[None,
|
||||
{'started': None},
|
||||
{'started': {'message': None}},
|
||||
{'started': {'message': 'valid'}},
|
||||
{'started': {'body': 'valid'}},
|
||||
{'started': {'message': 'valid', 'body': 'valid'}},
|
||||
{'started': None, 'success': None, 'error': None},
|
||||
{'started': {'message': None, 'body': None},
|
||||
'success': {'message': None, 'body': None},
|
||||
'error': {'message': None, 'body': None}},
|
||||
{'started': {'message': '{{ job.id }}', 'body': '{{ job.status }}'},
|
||||
'success': {'message': None, 'body': '{{ job_friendly_name }}'},
|
||||
'error': {'message': '{{ url }}', 'body': None}},
|
||||
{'started': {'body': '{{ job_summary_dict }}'}},
|
||||
{'started': {'body': '{{ job.summary_fields.inventory.total_hosts }}'}},
|
||||
{'started': {'body': u'Iñtërnâtiônàlizætiøn'}}
|
||||
])
|
||||
def test_valid_messages(self, valid_messages):
|
||||
serializer = NotificationTemplateSerializer()
|
||||
serializer.instance = StubNotificationTemplate()
|
||||
serializer.validate_messages(valid_messages)
|
||||
|
||||
@pytest.mark.parametrize('invalid_messages',
|
||||
[1,
|
||||
[],
|
||||
'',
|
||||
{'invalid_event': ''},
|
||||
{'started': 'should_be_dict'},
|
||||
{'started': {'bad_message_type': ''}},
|
||||
{'started': {'message': 1}},
|
||||
{'started': {'message': []}},
|
||||
{'started': {'message': {}}},
|
||||
{'started': {'message': '{{ unclosed_braces'}},
|
||||
{'started': {'message': '{{ undefined }}'}},
|
||||
{'started': {'message': '{{ job.undefined }}'}},
|
||||
{'started': {'message': '{{ job.id | bad_filter }}'}},
|
||||
{'started': {'message': '{{ job.__class__ }}'}},
|
||||
{'started': {'message': 'Newlines \n not allowed\n'}},
|
||||
])
|
||||
def test_invalid__messages(self, invalid_messages):
|
||||
serializer = NotificationTemplateSerializer()
|
||||
serializer.instance = StubNotificationTemplate()
|
||||
with pytest.raises(ValidationError):
|
||||
serializer.validate_messages(invalid_messages)
|
||||
Reference in New Issue
Block a user