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)