diff --git a/lib/galaxy/tools/parameters/basic.py b/lib/galaxy/tools/parameters/basic.py index 4436e21d35d..6c7e75e3bef 100644 --- a/lib/galaxy/tools/parameters/basic.py +++ b/lib/galaxy/tools/parameters/basic.py @@ -512,12 +512,12 @@ class IntegerToolParameter(TextToolParameter): def to_python(self, value, app): try: return int(value) - except (TypeError, ValueError) as err: + except (TypeError, ValueError): if contains_workflow_parameter(value): return value if not value and self.optional: return None - raise err + raise ParameterValueError("an integer is required", self.name, value) def get_initial_value(self, trans, other_values): if self.value is not None and self.value != "": @@ -585,12 +585,12 @@ class FloatToolParameter(TextToolParameter): def to_python(self, value, app): try: return float(value) - except (TypeError, ValueError) as err: + except (TypeError, ValueError): if contains_workflow_parameter(value): return value if not value and self.optional: return None - raise err + raise ParameterValueError("a float is required", self.name, value) def get_initial_value(self, trans, other_values): if self.value is None: diff --git a/test/unit/app/tools/test_parameter_validation.py b/test/unit/app/tools/test_parameter_validation.py index 712b184498b..58b149462a3 100644 --- a/test/unit/app/tools/test_parameter_validation.py +++ b/test/unit/app/tools/test_parameter_validation.py @@ -5,6 +5,7 @@ from galaxy.model import ( History, HistoryDatasetAssociation, ) +from galaxy.tools.parameters.basic import ParameterValueError from galaxy.util import galaxy_directory from .util import BaseParameterTestCase @@ -415,3 +416,15 @@ class TestParameterValidation(BaseParameterTestCase): p.validate("select id from job where id = 1;") with self.assertRaises(ValueError): p.validate("not sql") + + def test_integer_to_python_raises_parameter_value_error(self): + p = self._parameter_for(xml='') + assert p.to_python(42, self.app) == 42 + with self.assertRaises(ParameterValueError): + p.to_python(None, self.app) + + def test_float_to_python_raises_parameter_value_error(self): + p = self._parameter_for(xml='') + assert p.to_python(3.14, self.app) == 3.14 + with self.assertRaises(ParameterValueError): + p.to_python(None, self.app)