mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-10-30 18:13:23 +08:00
Merge pull request #22188 from guerler/fix_22186
[26.0] Throw ParameterValueError instead of generic error
This commit is contained in:
@@ -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:
|
||||
|
||||
@@ -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='<param name="num" type="integer" value="10" />')
|
||||
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='<param name="num" type="float" value="1.0" />')
|
||||
assert p.to_python(3.14, self.app) == 3.14
|
||||
with self.assertRaises(ParameterValueError):
|
||||
p.to_python(None, self.app)
|
||||
|
||||
Reference in New Issue
Block a user