Merge "Fix default handling for zero values"

This commit is contained in:
Jenkins 2014-03-13 10:40:49 +00:00 committed by Gerrit Code Review
commit c6f2b4b831
2 changed files with 30 additions and 1 deletions

View File

@ -18,7 +18,7 @@ ARRAY_MAX_SIZE = 1000
@generic
def from_param(datatype, value):
return datatype(value) if value else None
return datatype(value) if value is not None else None
@from_param.when_object(datetime.date)

View File

@ -75,3 +75,32 @@ class TestProtocolsCommons(unittest.TestCase):
assert fake_type.name in str(e)
else:
self.fail('Should have thrown an InvalidInput')
class ArgTypeConversion(unittest.TestCase):
def test_int_zero(self):
self.assertEqual(0, from_param(int, 0))
self.assertEqual(0, from_param(int, '0'))
def test_int_nonzero(self):
self.assertEqual(1, from_param(int, 1))
self.assertEqual(1, from_param(int, '1'))
def test_int_none(self):
self.assertEqual(None, from_param(int, None))
def test_float_zero(self):
self.assertEqual(0.0, from_param(float, 0))
self.assertEqual(0.0, from_param(float, 0.0))
self.assertEqual(0.0, from_param(float, '0'))
self.assertEqual(0.0, from_param(float, '0.0'))
def test_float_nonzero(self):
self.assertEqual(1.0, from_param(float, 1))
self.assertEqual(1.0, from_param(float, 1.0))
self.assertEqual(1.0, from_param(float, '1'))
self.assertEqual(1.0, from_param(float, '1.0'))
def test_float_none(self):
self.assertEqual(None, from_param(float, None))