Merge pull request #2774 from medspx/processing_fix_parameternumber

[processing] fix ParameterNumber float detection
This commit is contained in:
Alexander Bruy 2016-02-11 13:47:48 +02:00
commit 0d652b2fe0
2 changed files with 12 additions and 2 deletions

View File

@ -446,9 +446,9 @@ class ParameterNumber(Parameter):
if default is not None:
try:
self.default = int(float(default))
self.default = int(unicode(default))
self.isInteger = True
except:
except ValueError:
self.default = float(default)
self.isInteger = False
else:

View File

@ -308,6 +308,16 @@ class ParameterNumberTest(unittest.TestCase):
self.assertFalse(parameter.setValue('not a number'))
self.assertEqual(parameter.value, None)
def testIsInteger(self):
floatParameter = ParameterNumber('myname', 'myDescription', default=1.0)
self.assertFalse(floatParameter.isInteger)
intParameter = ParameterNumber('myname', 'myDescription', default=10)
self.assertTrue(intParameter.isInteger)
strFloatParameter = ParameterNumber('myname', 'myDescription', default="1.0")
self.assertFalse(strFloatParameter.isInteger)
strIntParameter = ParameterNumber('myname', 'myDescription', default="10")
self.assertTrue(strIntParameter.isInteger)
def testMaxValue(self):
parameter = ParameterNumber('myName', 'myDescription', maxValue=10)
self.assertFalse(parameter.setValue(11))