Skip to content

Commit 0d652b2

Browse files
committedFeb 11, 2016
Merge pull request #2774 from medspx/processing_fix_parameternumber
[processing] fix ParameterNumber float detection
2 parents 169d35f + 5d19a3b commit 0d652b2

File tree

2 files changed

+12
-2
lines changed

2 files changed

+12
-2
lines changed
 

‎python/plugins/processing/core/parameters.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -446,9 +446,9 @@ def __init__(self, name='', description='', minValue=None, maxValue=None,
446446

447447
if default is not None:
448448
try:
449-
self.default = int(float(default))
449+
self.default = int(unicode(default))
450450
self.isInteger = True
451-
except:
451+
except ValueError:
452452
self.default = float(default)
453453
self.isInteger = False
454454
else:

‎python/plugins/processing/tests/ParametersTest.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -308,6 +308,16 @@ def testSetValueOnlyValidNumbers(self):
308308
self.assertFalse(parameter.setValue('not a number'))
309309
self.assertEqual(parameter.value, None)
310310

311+
def testIsInteger(self):
312+
floatParameter = ParameterNumber('myname', 'myDescription', default=1.0)
313+
self.assertFalse(floatParameter.isInteger)
314+
intParameter = ParameterNumber('myname', 'myDescription', default=10)
315+
self.assertTrue(intParameter.isInteger)
316+
strFloatParameter = ParameterNumber('myname', 'myDescription', default="1.0")
317+
self.assertFalse(strFloatParameter.isInteger)
318+
strIntParameter = ParameterNumber('myname', 'myDescription', default="10")
319+
self.assertTrue(strIntParameter.isInteger)
320+
311321
def testMaxValue(self):
312322
parameter = ParameterNumber('myName', 'myDescription', maxValue=10)
313323
self.assertFalse(parameter.setValue(11))

0 commit comments

Comments
 (0)
Please sign in to comment.