diff options
author | Jenkins <jenkins@review.openstack.org> | 2014-03-13 10:40:49 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2014-03-13 10:40:49 +0000 |
commit | c6f2b4b831435a1a347c1e10ec8179f7482b18d2 (patch) | |
tree | 0d51b3ccf2eabd294abb71c95b329e1b1551fcbb | |
parent | b10eed896644991539de8db875d42ead5bc49bf7 (diff) | |
parent | 9c8a033415606667eca915c863165e5f9021bccb (diff) | |
download | wsme-c6f2b4b831435a1a347c1e10ec8179f7482b18d2.tar.gz |
Merge "Fix default handling for zero values"
-rw-r--r-- | wsme/rest/args.py | 2 | ||||
-rw-r--r-- | wsme/tests/test_protocols_commons.py | 29 |
2 files changed, 30 insertions, 1 deletions
diff --git a/wsme/rest/args.py b/wsme/rest/args.py index 4574cdd..9b8f2e1 100644 --- a/wsme/rest/args.py +++ b/wsme/rest/args.py @@ -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) diff --git a/wsme/tests/test_protocols_commons.py b/wsme/tests/test_protocols_commons.py index 19908b2..6a4c1a8 100644 --- a/wsme/tests/test_protocols_commons.py +++ b/wsme/tests/test_protocols_commons.py @@ -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)) |