From 2a7df4a27a7e1ab1634068e8e58c9923c9e4527e Mon Sep 17 00:00:00 2001 From: Nicola Heald <nicola@notnowlewis.com> Date: Mon, 15 Feb 2016 15:42:20 +0000 Subject: [PATCH] Allow null values for log-text The log-text parameter is required according to the documentation, but it's perfectly valid for it to be an empty string or null. If the value is null in the yaml, the Python data structure contains None. The code was converting this directly to a string, resulting in 'None' in the xml output. This change makes sure that an empty string is used instead, resulting in a correct empty element in the xml. Change-Id: Ided872f5528bae93347f96bd729b5ce37f8e16fb --- jenkins_jobs/modules/publishers.py | 2 +- tests/publishers/fixtures/post-tasks002.xml | 21 ++++++++++++++++++++ tests/publishers/fixtures/post-tasks002.yaml | 9 +++++++++ 3 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 tests/publishers/fixtures/post-tasks002.xml create mode 100644 tests/publishers/fixtures/post-tasks002.yaml diff --git a/jenkins_jobs/modules/publishers.py b/jenkins_jobs/modules/publishers.py index 7f953131a..53c7be83e 100644 --- a/jenkins_jobs/modules/publishers.py +++ b/jenkins_jobs/modules/publishers.py @@ -2956,7 +2956,7 @@ def post_tasks(parser, xml_parent, data): matches_xml, 'hudson.plugins.postbuildtask.LogProperties') XML.SubElement(lt_xml, 'logText').text = str( - match.get('log-text', '')) + match.get('log-text', False) or '') XML.SubElement(lt_xml, 'operator').text = str( match.get('operator', 'AND')).upper() XML.SubElement(task_xml, 'EscalateStatus').text = str( diff --git a/tests/publishers/fixtures/post-tasks002.xml b/tests/publishers/fixtures/post-tasks002.xml new file mode 100644 index 000000000..33e03c4ef --- /dev/null +++ b/tests/publishers/fixtures/post-tasks002.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="utf-8"?> +<project> + <publishers> + <hudson.plugins.postbuildtask.PostbuildTask> + <tasks> + <hudson.plugins.postbuildtask.TaskProperties> + <logTexts> + <hudson.plugins.postbuildtask.LogProperties> + <logText/> + <operator>AND</operator> + </hudson.plugins.postbuildtask.LogProperties> + </logTexts> + <EscalateStatus>true</EscalateStatus> + <RunIfJobSuccessful>true</RunIfJobSuccessful> + <script>echo "Here goes the task script" +</script> + </hudson.plugins.postbuildtask.TaskProperties> + </tasks> + </hudson.plugins.postbuildtask.PostbuildTask> + </publishers> +</project> diff --git a/tests/publishers/fixtures/post-tasks002.yaml b/tests/publishers/fixtures/post-tasks002.yaml new file mode 100644 index 000000000..2f7352402 --- /dev/null +++ b/tests/publishers/fixtures/post-tasks002.yaml @@ -0,0 +1,9 @@ +publishers: + - post-tasks: + - matches: + - log-text: null + operator: AND + escalate-status: true + run-if-job-successful: true + script: | + echo "Here goes the task script"