Merge pull request #9144 from nsoranzo/release_19.05_followup_on_9067

[19.05] Restore returning "None" when casting unselected multiselect param to str
This commit is contained in:
Marius van den Beek
2019-12-19 10:27:03 +01:00
committed by GitHub
2 changed files with 22 additions and 2 deletions
+1 -1
View File
@@ -903,7 +903,7 @@ class SelectToolParameter(ToolParameter):
return value
def to_param_dict_string(self, value, other_values={}):
if value is None:
if value in (None, []):
return "None"
if isinstance(value, list):
if not self.multiple:
+21 -1
View File
@@ -42,11 +42,31 @@ def test_select_wrapper_simple_options(tool):
</param>''')
parameter = SelectToolParameter(tool, xml)
wrapper = SelectToolParameterWrapper(parameter, "x")
assert str(wrapper) == "x"
assert wrapper.name == "blah"
assert str(wrapper) == "x"
assert wrapper.value_label == "I am X"
@with_mock_tool
def test_select_wrapper_multiple_options(tool):
xml = XML('''<param name="blah" type="select" multiple="true">
<option value="x">I am X</option>
<option value="y" selected="true">I am Y</option>
<option value="z">I am Z</option>
</param>''')
parameter = SelectToolParameter(tool, xml)
wrapper = SelectToolParameterWrapper(parameter, ["x"])
assert wrapper.name == "blah"
assert str(wrapper) == "x"
assert "x" in wrapper
wrapper = SelectToolParameterWrapper(parameter, ["x", "z"])
assert str(wrapper) == "x,z"
assert "x" in wrapper
wrapper = SelectToolParameterWrapper(parameter, [])
assert str(wrapper) == "None"
assert "x" not in wrapper
@with_mock_tool
def test_select_wrapper_with_drilldown(tool):
parameter = _drilldown_parameter(tool)