diff --git a/awx_collection/plugins/modules/tower_job_template.py b/awx_collection/plugins/modules/tower_job_template.py index 8b5f2cef8f..c99eb73118 100644 --- a/awx_collection/plugins/modules/tower_job_template.py +++ b/awx_collection/plugins/modules/tower_job_template.py @@ -436,7 +436,7 @@ def main(): 'become_enabled', 'diff_mode', 'allow_simultaneous', 'custom_virtualenv', 'job_slice_count', 'webhook_service', ): field_val = module.params.get(field_name) - if field_val: + if field_val is not None: new_fields[field_name] = field_val # Special treatment of extra_vars parameter diff --git a/awx_collection/test/awx/test_job_template.py b/awx_collection/test/awx/test_job_template.py index 4b480ed45d..aba6d582af 100644 --- a/awx_collection/test/awx/test_job_template.py +++ b/awx_collection/test/awx/test_job_template.py @@ -35,6 +35,53 @@ def test_create_job_template(run_module, admin_user, project, inventory): assert jt.inventory_id == inventory.id +@pytest.mark.django_db +def test_resete_job_template_values(run_module, admin_user, project, inventory): + + module_args = { + 'name': 'foo', 'playbook': 'helloworld.yml', + 'project': project.name, 'inventory': inventory.name, + 'extra_vars': {'foo': 'bar'}, + 'job_type': 'run', + 'state': 'present', + 'forks': 20, + 'timeout': 50, + 'allow_simultaneous': True, + 'ask_limit_on_launch': True, + } + + result = run_module('tower_job_template', module_args, admin_user) + + jt = JobTemplate.objects.get(name='foo') + assert jt.forks == 20 + assert jt.timeout == 50 + assert jt.allow_simultaneous + assert jt.ask_limit_on_launch + + module_args = { + 'name': 'foo', 'playbook': 'helloworld.yml', + 'project': project.name, 'inventory': inventory.name, + 'extra_vars': {'foo': 'bar'}, + 'job_type': 'run', + 'state': 'present', + 'forks': 0, + 'timeout': 0, + 'allow_simultaneous': False, + 'ask_limit_on_launch': False, + } + + result = run_module('tower_job_template', module_args, admin_user) + assert result['changed'] + + jt = JobTemplate.objects.get(name='foo') + assert jt.forks == 0 + assert jt.timeout == 0 + assert not jt.allow_simultaneous + assert not jt.ask_limit_on_launch + + + + @pytest.mark.django_db def test_job_launch_with_prompting(run_module, admin_user, project, inventory, machine_credential): JobTemplate.objects.create(