From 99fc0e826492b7f86f36fc88e7c98396e297b09a Mon Sep 17 00:00:00 2001 From: AlanCoding Date: Wed, 22 Mar 2017 14:26:12 -0400 Subject: [PATCH] Use consistent error message when vars are not parsed correctly --- awx/api/serializers.py | 6 +++--- awx/main/tests/functional/api/test_job_runtime_params.py | 3 ++- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/awx/api/serializers.py b/awx/api/serializers.py index 7c6698ccdd..2aeafa657f 100644 --- a/awx/api/serializers.py +++ b/awx/api/serializers.py @@ -1216,7 +1216,7 @@ class HostSerializer(BaseSerializerWithVariables): vars_dict['ansible_ssh_port'] = port attrs['variables'] = yaml.dump(vars_dict) except (yaml.YAMLError, TypeError): - raise serializers.ValidationError(_('Must be valid JSON or YAML.')) + raise serializers.ValidationError({'variables': _('Must be valid JSON or YAML.')}) return super(HostSerializer, self).validate(attrs) @@ -2693,7 +2693,7 @@ class JobLaunchSerializer(BaseSerializer): extra_vars = yaml.safe_load(extra_vars) assert isinstance(extra_vars, dict) except (yaml.YAMLError, TypeError, AttributeError, AssertionError): - errors['extra_vars'] = _('Must be a valid JSON or YAML dictionary.') + errors['extra_vars'] = _('Must be valid JSON or YAML.') if not isinstance(extra_vars, dict): extra_vars = {} @@ -2764,7 +2764,7 @@ class WorkflowJobLaunchSerializer(BaseSerializer): extra_vars = yaml.safe_load(extra_vars) assert isinstance(extra_vars, dict) except (yaml.YAMLError, TypeError, AttributeError, AssertionError): - errors['extra_vars'] = 'Must be a valid JSON or YAML dictionary.' + errors['extra_vars'] = _('Must be valid JSON or YAML.') if not isinstance(extra_vars, dict): extra_vars = {} diff --git a/awx/main/tests/functional/api/test_job_runtime_params.py b/awx/main/tests/functional/api/test_job_runtime_params.py index e63a074965..e7cd739e19 100644 --- a/awx/main/tests/functional/api/test_job_runtime_params.py +++ b/awx/main/tests/functional/api/test_job_runtime_params.py @@ -196,7 +196,8 @@ def test_job_reject_invalid_prompted_extra_vars(runtime_data, job_template_promp reverse('api:job_template_launch', args=[job_template.pk]), dict(extra_vars='{"unbalanced brackets":'), admin_user, expect=400) - assert response.data['extra_vars'] == ['Must be a valid JSON or YAML dictionary.'] + assert 'extra_vars' in response.data + assert 'valid JSON or YAML' in str(response.data['extra_vars'][0]) @pytest.mark.django_db