Return Integer or Float casted value in NumberParam

Integer value used in parameter, so failed validation in properties.
The solution here is return Integer casted value or Float casted value
as value of NumberParam.

The method of which type choose for cast is same of Property.str_to_num.

Fixes bug #1226494

Change-Id: I9f7d894ffae8a728dce783d5881af3d377268b93
This commit is contained in:
Mitsuru Kanabuchi
2013-10-10 20:42:42 +09:00
parent 57dac72b55
commit ce62192a76
2 changed files with 15 additions and 9 deletions

View File

@@ -215,15 +215,21 @@ class NumberParam(Parameter):
def __int__(self):
'''Return an integer representation of the parameter'''
return int(self.value())
return int(super(NumberParam, self).value())
def __float__(self):
'''Return a float representation of the parameter'''
return float(self.value())
return float(super(NumberParam, self).value())
def validate(self, val):
self.schema.validate(self.name, val)
def value(self):
try:
return int(self)
except ValueError:
return float(self)
class StringParam(Parameter):
'''A template parameter of type "String".'''