From ec86961e136ac5c38867d9f25ce47fd918613cfe Mon Sep 17 00:00:00 2001 From: Wayne Witzel III Date: Thu, 2 Feb 2017 14:48:31 -0500 Subject: [PATCH] only assign the default if it is not None --- awx/main/models/mixins.py | 3 ++- .../tests/unit/models/test_job_template_unit.py | 16 ++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/awx/main/models/mixins.py b/awx/main/models/mixins.py index 952377c112..c755de9f0a 100644 --- a/awx/main/models/mixins.py +++ b/awx/main/models/mixins.py @@ -134,7 +134,8 @@ class SurveyJobTemplateMixin(models.Model): kw_value = kwargs_extra_vars[variable_key] if kw_value.startswith('$encrypted$') and kw_value != default: kwargs_extra_vars[variable_key] = default - extra_vars[variable_key] = default + if default is not None: + extra_vars[variable_key] = default # Overwrite job template extra vars with explicit job extra vars # and add on job extra vars diff --git a/awx/main/tests/unit/models/test_job_template_unit.py b/awx/main/tests/unit/models/test_job_template_unit.py index dade874617..194ce68cef 100644 --- a/awx/main/tests/unit/models/test_job_template_unit.py +++ b/awx/main/tests/unit/models/test_job_template_unit.py @@ -99,3 +99,19 @@ def test_job_template_survey_mixin(job_template_factory): obj.survey_spec = {'spec': [{'default':'my_default', 'type':'password', 'variable':'my_variable'}]} kwargs = obj._update_unified_job_kwargs(extra_vars={'my_variable':'$encrypted$'}) assert kwargs['extra_vars'] == '{"my_variable": "my_default"}' + + +def test_job_template_survey_mixin_length(job_template_factory): + objects = job_template_factory( + 'survey_mixin_test', + organization='org1', + inventory='inventory1', + credential='cred1', + persisted=False, + ) + obj = objects.job_template + obj.survey_enabled = True + obj.survey_spec = {'spec': [{'default':'my_default', 'type':'password', 'variable':'my_variable'}, + {'type':'password', 'variable':'my_other_variable'}]} + kwargs = obj._update_unified_job_kwargs(extra_vars={'my_variable':'$encrypted$'}) + assert kwargs['extra_vars'] == '{"my_variable": "my_default"}'