From 00e2ea35d6aa5170d536bcd6f4c15f1bb7a594d2 Mon Sep 17 00:00:00 2001 From: Yolande Amate Date: Tue, 20 Jun 2017 03:17:38 +0100 Subject: [PATCH] Update extended_choice_param to use convert_xml() Change-Id: Ia713a21061d6d6db1d1ac48983a44f6f3ea1cc1d --- jenkins_jobs/modules/parameters.py | 54 ++++++++----------- ...002.xml => extended-choice-param-full.xml} | 0 ...2.yaml => extended-choice-param-full.yaml} | 0 ....xml => extended-choice-param-minimal.xml} | 2 +- ...aml => extended-choice-param-minimal.yaml} | 2 - .../fixtures/extended-choice-param003.xml | 26 --------- .../fixtures/extended-choice-param003.yaml | 13 ----- 7 files changed, 24 insertions(+), 73 deletions(-) rename tests/parameters/fixtures/{extended-choice-param002.xml => extended-choice-param-full.xml} (100%) rename tests/parameters/fixtures/{extended-choice-param002.yaml => extended-choice-param-full.yaml} (100%) rename tests/parameters/fixtures/{extended-choice-param001.xml => extended-choice-param-minimal.xml} (95%) rename tests/parameters/fixtures/{extended-choice-param001.yaml => extended-choice-param-minimal.yaml} (83%) delete mode 100644 tests/parameters/fixtures/extended-choice-param003.xml delete mode 100644 tests/parameters/fixtures/extended-choice-param003.yaml diff --git a/jenkins_jobs/modules/parameters.py b/jenkins_jobs/modules/parameters.py index d51883b44..83e0df0bb 100644 --- a/jenkins_jobs/modules/parameters.py +++ b/jenkins_jobs/modules/parameters.py @@ -395,29 +395,22 @@ def extended_choice_param(registry, xml_parent, data): :arg str multi-select-delimiter: value between selections when the parameter is a multi-select (optiona, default ',') - Example: + Minimal Example: .. literalinclude:: \ - /../../tests/parameters/fixtures/extended-choice-param001.yaml + /../../tests/parameters/fixtures/extended-choice-param-minimal.yaml :language: yaml + Full Example: + .. literalinclude:: \ + /../../tests/parameters/fixtures/extended-choice-param-full.yaml + :language: yaml """ pdef = base_param(registry, xml_parent, data, False, 'com.cwctravel.hudson.plugins.' 'extended__choice__parameter.' 'ExtendedChoiceParameterDefinition') - XML.SubElement(pdef, 'value').text = data.get('value', '') - XML.SubElement(pdef, 'visibleItemCount').text = str(data.get( - 'visible-items', data.get('visible-item-count', 5))) - XML.SubElement(pdef, 'multiSelectDelimiter').text = data.get( - 'multi-select-delimiter', ',') - XML.SubElement(pdef, 'quoteValue').text = str(data.get('quote-value', - False)).lower() - XML.SubElement(pdef, 'defaultValue').text = data.get( - 'default-value', '') - XML.SubElement(pdef, 'descriptionPropertyValue').text = data.get( - 'value-description', '') - choice = data.get('type', 'single-select') + choicedict = {'single-select': 'PT_SINGLE_SELECT', 'multi-select': 'PT_MULTI_SELECT', 'radio': 'PT_RADIO', @@ -428,23 +421,22 @@ def extended_choice_param(registry, xml_parent, data): 'PT_RADIO': 'PT_RADIO', 'PT_CHECKBOX': 'PT_CHECKBOX', 'PT_TEXTBOX': 'PT_TEXTBOX'} - - if choice in choicedict: - XML.SubElement(pdef, 'type').text = choicedict[choice] - else: - raise JenkinsJobsException("Type entered is not valid, must be one " - "of: single-select, multi-select, radio, " - "textbox or checkbox") - XML.SubElement(pdef, 'propertyFile').text = data.get('property-file', '') - XML.SubElement(pdef, 'propertyKey').text = data.get('property-key', '') - XML.SubElement(pdef, 'defaultPropertyFile').text = data.get( - 'default-property-file', '') - XML.SubElement(pdef, 'defaultPropertyKey').text = data.get( - 'default-property-key', '') - XML.SubElement(pdef, 'descriptionPropertyFile').text = data.get( - 'description-property-file', '') - XML.SubElement(pdef, 'descriptionPropertyKey').text = data.get( - 'description-property-key', '') + mapping = [ + ('value', 'value', ''), + ('visible-items', 'visibleItemCount', 5), + ('multi-select-delimiter', 'multiSelectDelimiter', ','), + ('quote-value', 'quoteValue', False), + ('default-value', 'defaultValue', ''), + ('value-description', 'descriptionPropertyValue', ''), + ('type', 'type', 'single-select', choicedict), + ('property-file', 'propertyFile', ''), + ('property-key', 'propertyKey', ''), + ('default-property-file', 'defaultPropertyFile', ''), + ('default-property-key', 'defaultPropertyKey', ''), + ('description-property-file', 'descriptionPropertyFile', ''), + ('description-property-key', 'descriptionPropertyKey', ''), + ] + convert_mapping_to_xml(pdef, data, mapping, fail_required=True) def validating_string_param(registry, xml_parent, data): diff --git a/tests/parameters/fixtures/extended-choice-param002.xml b/tests/parameters/fixtures/extended-choice-param-full.xml similarity index 100% rename from tests/parameters/fixtures/extended-choice-param002.xml rename to tests/parameters/fixtures/extended-choice-param-full.xml diff --git a/tests/parameters/fixtures/extended-choice-param002.yaml b/tests/parameters/fixtures/extended-choice-param-full.yaml similarity index 100% rename from tests/parameters/fixtures/extended-choice-param002.yaml rename to tests/parameters/fixtures/extended-choice-param-full.yaml diff --git a/tests/parameters/fixtures/extended-choice-param001.xml b/tests/parameters/fixtures/extended-choice-param-minimal.xml similarity index 95% rename from tests/parameters/fixtures/extended-choice-param001.xml rename to tests/parameters/fixtures/extended-choice-param-minimal.xml index 45c9bff0a..dcf9f9483 100644 --- a/tests/parameters/fixtures/extended-choice-param001.xml +++ b/tests/parameters/fixtures/extended-choice-param-minimal.xml @@ -7,7 +7,7 @@ OPTIONS Available options OptionA,OptionB,OptionC - 2 + 5 , false diff --git a/tests/parameters/fixtures/extended-choice-param001.yaml b/tests/parameters/fixtures/extended-choice-param-minimal.yaml similarity index 83% rename from tests/parameters/fixtures/extended-choice-param001.yaml rename to tests/parameters/fixtures/extended-choice-param-minimal.yaml index 861e36c26..8a6226e21 100644 --- a/tests/parameters/fixtures/extended-choice-param001.yaml +++ b/tests/parameters/fixtures/extended-choice-param-minimal.yaml @@ -4,5 +4,3 @@ parameters: description: "Available options" type: 'PT_CHECKBOX' value: OptionA,OptionB,OptionC - visible-item-count: "2" - diff --git a/tests/parameters/fixtures/extended-choice-param003.xml b/tests/parameters/fixtures/extended-choice-param003.xml deleted file mode 100644 index 3115f9a9a..000000000 --- a/tests/parameters/fixtures/extended-choice-param003.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - OPTIONS - Available options - - 2 - , - false - foo - bar1, bar2, bar3 - PT_SINGLE_SELECT - /home/foo/property.prop - key - /home/property.prop - fookey - /home/foo/bar.properties - bar_desc - - - - - diff --git a/tests/parameters/fixtures/extended-choice-param003.yaml b/tests/parameters/fixtures/extended-choice-param003.yaml deleted file mode 100644 index fba877782..000000000 --- a/tests/parameters/fixtures/extended-choice-param003.yaml +++ /dev/null @@ -1,13 +0,0 @@ -parameters: - - extended-choice: - name: OPTIONS - description: "Available options" - property-file: /home/foo/property.prop - property-key: key - visible-items: 2 - default-value: foo - default-property-file: /home/property.prop - default-property-key: fookey - description-property-file: /home/foo/bar.properties - description-property-key: bar_desc - value-description: bar1, bar2, bar3 \ No newline at end of file