mirror of
https://github.com/ansible/awx.git
synced 2026-01-14 03:10:42 -03:30
Better handle notification template patches for notification_type
This makes it so patches don't require the notification_type to be present
This commit is contained in:
parent
9494db583d
commit
2b323fc24e
@ -2435,9 +2435,16 @@ class NotificationTemplateSerializer(BaseSerializer):
|
||||
|
||||
def validate(self, attrs):
|
||||
from awx.api.views import NotificationTemplateDetail
|
||||
if 'notification_type' not in attrs:
|
||||
|
||||
notification_type = None
|
||||
if 'notification_type' in attrs:
|
||||
notification_type = attrs['notification_type']
|
||||
elif self.instance:
|
||||
notification_type = self.instance.notification_type
|
||||
if not notification_type:
|
||||
raise serializers.ValidationError('Missing required fields for Notification Configuration: notification_type')
|
||||
notification_class = NotificationTemplate.CLASS_FOR_NOTIFICATION_TYPE[attrs['notification_type']]
|
||||
|
||||
notification_class = NotificationTemplate.CLASS_FOR_NOTIFICATION_TYPE[notification_type]
|
||||
missing_fields = []
|
||||
incorrect_type_fields = []
|
||||
error_list = []
|
||||
|
||||
@ -106,5 +106,9 @@ def test_notification_template_merging(get, post, user, organization, project, n
|
||||
assert len(project.notification_templates['any']) == 1
|
||||
|
||||
@pytest.mark.django_db
|
||||
def test_notification_template_invalid_patch(patch, notification_template, organization, admin):
|
||||
patch(reverse('api:notification_template_detail', args=(notification_template.id,)), { 'organization': organization.id}, admin, expect=400)
|
||||
def test_notification_template_simple_patch(patch, notification_template, admin):
|
||||
patch(reverse('api:notification_template_detail', args=(notification_template.id,)), { 'name': 'foo'}, admin, expect=200)
|
||||
|
||||
@pytest.mark.django_db
|
||||
def test_notification_template_invalid_notification_type(patch, notification_template, admin):
|
||||
patch(reverse('api:notification_template_detail', args=(notification_template.id,)), { 'notification_type': 'invalid'}, admin, expect=400)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user