summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2014-03-13 10:40:49 +0000
committerGerrit Code Review <review@openstack.org>2014-03-13 10:40:49 +0000
commitc6f2b4b831435a1a347c1e10ec8179f7482b18d2 (patch)
tree0d51b3ccf2eabd294abb71c95b329e1b1551fcbb
parentb10eed896644991539de8db875d42ead5bc49bf7 (diff)
parent9c8a033415606667eca915c863165e5f9021bccb (diff)
downloadwsme-c6f2b4b831435a1a347c1e10ec8179f7482b18d2.tar.gz
Merge "Fix default handling for zero values"
-rw-r--r--wsme/rest/args.py2
-rw-r--r--wsme/tests/test_protocols_commons.py29
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))