mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-09-24 16:30:27 +08:00
Merge branch 'release_19.05' into release_19.09
This commit is contained in:
@@ -83,8 +83,11 @@ class InputValueWrapper(ToolParameterValueWrapper):
|
||||
if self.input.type == 'boolean' and isinstance(other, string_types):
|
||||
return str(self)
|
||||
# For backward compatibility, allow `$wrapper != ""` for optional non-text param
|
||||
if self.input.optional and self.value is None and isinstance(other, string_types):
|
||||
return str(self)
|
||||
if self.input.optional and self.value is None:
|
||||
if isinstance(other, string_types):
|
||||
return str(self)
|
||||
else:
|
||||
return None
|
||||
cast = {
|
||||
'text': str,
|
||||
'integer': int,
|
||||
|
||||
@@ -108,15 +108,19 @@ def test_raw_object_wrapper():
|
||||
assert not false_wrapper
|
||||
|
||||
|
||||
def valuewrapper(tool, value, paramtype):
|
||||
def valuewrapper(tool, value, paramtype, optional=False):
|
||||
if paramtype == "integer":
|
||||
parameter = IntegerToolParameter(tool, XML('<param name="blah" type="integer" value="10" min="0" />'))
|
||||
optional = 'optional="true"' if optional else 'value="10"'
|
||||
parameter = IntegerToolParameter(tool, XML('<param name="blah" type="integer" %s min="0" />' % optional))
|
||||
elif paramtype == "text":
|
||||
parameter = TextToolParameter(tool, XML('<param name="blah" type="text" value="foo"/>'))
|
||||
optional = 'optional="true"' if optional else 'value="foo"'
|
||||
parameter = TextToolParameter(tool, XML('<param name="blah" type="text" %s/>' % optional))
|
||||
elif paramtype == "float":
|
||||
parameter = FloatToolParameter(tool, XML('<param name="blah" type="float" value="10.0"/>'))
|
||||
optional = 'optional="true"' if optional else 'value="10.0"'
|
||||
parameter = FloatToolParameter(tool, XML('<param name="blah" type="float" %s/>' % optional))
|
||||
elif paramtype == "boolean":
|
||||
parameter = BooleanToolParameter(tool, XML('<param name="blah" type="boolean" truevalue="truevalue" falsevalue="falsevalue"/>'))
|
||||
optional = 'optional="true"' if optional else 'value=""'
|
||||
parameter = BooleanToolParameter(tool, XML('<param name="blah" type="boolean" truevalue="truevalue" falsevalue="falsevalue" %s/>' % optional))
|
||||
return InputValueWrapper(parameter, value)
|
||||
|
||||
|
||||
@@ -143,19 +147,24 @@ def test_input_value_wrapper_comparison(tool):
|
||||
|
||||
@with_mock_tool
|
||||
def test_input_value_wrapper_comparison_optional(tool):
|
||||
parameter = IntegerToolParameter(tool, XML('<param name="blah" type="integer" min="0" optional="true"/>'))
|
||||
wrapper = InputValueWrapper(parameter, None)
|
||||
wrapper = valuewrapper(tool, None, 'integer', optional=True)
|
||||
assert not wrapper
|
||||
with pytest.raises(ValueError):
|
||||
int(wrapper)
|
||||
assert str(wrapper) == ""
|
||||
assert wrapper == "" # for backward-compatibility
|
||||
parameter = IntegerToolParameter(tool, XML('<param name="blah" type="integer" min="0" optional="true"/>'))
|
||||
wrapper = InputValueWrapper(parameter, 0)
|
||||
wrapper = valuewrapper(tool, 0, 'integer', optional=True)
|
||||
assert wrapper == 0
|
||||
assert int(wrapper) == 0
|
||||
assert str(wrapper)
|
||||
assert wrapper != "" # for backward-compatibility, the correct way to check if an optional integer param is not empty is to use str(wrapper)
|
||||
wrapper = valuewrapper(tool, None, 'integer', optional=True)
|
||||
assert wrapper != 1
|
||||
assert str(wrapper) == ""
|
||||
assert wrapper == None # noqa: E711
|
||||
wrapper = valuewrapper(tool, None, "boolean")
|
||||
assert bool(wrapper) is False, wrapper
|
||||
assert str(wrapper) == 'falsevalue'
|
||||
|
||||
|
||||
@with_mock_tool
|
||||
|
||||
Reference in New Issue
Block a user