diff --git a/awx/api/views/__init__.py b/awx/api/views/__init__.py index d2670c09f5..f754906951 100644 --- a/awx/api/views/__init__.py +++ b/awx/api/views/__init__.py @@ -2509,7 +2509,7 @@ class JobTemplateSurveySpec(GenericAPIView): ).format( allowed_types=', '.join(JobTemplateSurveySpec.ALLOWED_TYPES.keys()), **context ))) - if 'default' in survey_item: + if 'default' in survey_item and survey_item['default'] != '': if not isinstance(survey_item['default'], JobTemplateSurveySpec.ALLOWED_TYPES[qtype]): type_label = 'string' if qtype in ['integer', 'float']: diff --git a/awx/main/tests/unit/api/test_views.py b/awx/main/tests/unit/api/test_views.py index e2f1f5150b..db602e3b85 100644 --- a/awx/main/tests/unit/api/test_views.py +++ b/awx/main/tests/unit/api/test_views.py @@ -413,3 +413,11 @@ class TestSurveySpecValidation: spec['spec'][0].pop('type') r = JobTemplateSurveySpec._validate_spec_data(spec, {}) assert "'type' missing from survey question 0" in r.data['error'] + + + @pytest.mark.parametrize('_type', ['integer', 'float']) + def test_survey_spec_element_number_empty_default(self, _type): + """ Assert that empty default is allowed for answer. """ + spec = self.spec_from_element({'type': _type, 'default': ''}) + r = JobTemplateSurveySpec._validate_spec_data(spec, {}) + assert r is None