diff --git a/lib/galaxy/tools/wrappers.py b/lib/galaxy/tools/wrappers.py index 89776480080..c49702fe307 100644 --- a/lib/galaxy/tools/wrappers.py +++ b/lib/galaxy/tools/wrappers.py @@ -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 self.input.type != 'boolean': - 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, diff --git a/test/unit/tools/test_wrappers.py b/test/unit/tools/test_wrappers.py index b1567be682c..5acea546dbd 100644 --- a/test/unit/tools/test_wrappers.py +++ b/test/unit/tools/test_wrappers.py @@ -161,6 +161,7 @@ def test_input_value_wrapper_comparison_optional(tool): 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'