]> review.fuel-infra Code Review - openstack-build/neutron-build.git/commitdiff
Use isinstance for _validate_boolean
authorZhongyue Luo <zhongyue.nah@intel.com>
Tue, 6 Nov 2012 03:01:00 +0000 (11:01 +0800)
committerZhongyue Luo <zhongyue.nah@intel.com>
Thu, 8 Nov 2012 05:47:24 +0000 (13:47 +0800)
Makes _validate_boolean's validation condition more strict

Change-Id: I286934cab3ccbb3f6d965a37dd2ade6b5dcdfb0a

quantum/api/v2/attributes.py
quantum/tests/unit/test_attributes.py

index 80a5dae8400ae35f7c69dbbf2ddcb467023eea02..003b520df72e665db3d28f33f0ba4e69468492f5 100644 (file)
@@ -33,7 +33,7 @@ def is_attr_set(attribute):
 
 
 def _validate_boolean(data, valid_values=None):
-    if data in [True, False]:
+    if isinstance(data, bool):
         return
     else:
         msg = _("'%s' is not boolean") % data
index 08654c6d1aad4cfaf755b26c97a6ad3d658c6f72..2b930b0ebda71dff30ff558b8d971e3f1d2b4d70 100644 (file)
@@ -23,6 +23,46 @@ from quantum.common import exceptions as q_exc
 
 class TestAttributes(unittest2.TestCase):
 
+    def test_booleans(self):
+        msg = attributes._validate_boolean(True)
+        self.assertIsNone(msg)
+
+        msg = attributes._validate_boolean(False)
+        self.assertIsNone(msg)
+
+        msg = attributes._validate_boolean('True')
+        self.assertEquals(msg, "'True' is not boolean")
+
+        msg = attributes._validate_boolean('true')
+        self.assertEquals(msg, "'true' is not boolean")
+
+        msg = attributes._validate_boolean('False')
+        self.assertEquals(msg, "'False' is not boolean")
+
+        msg = attributes._validate_boolean('false')
+        self.assertEquals(msg, "'false' is not boolean")
+
+        msg = attributes._validate_boolean('0')
+        self.assertEquals(msg, "'0' is not boolean")
+
+        msg = attributes._validate_boolean('1')
+        self.assertEquals(msg, "'1' is not boolean")
+
+        msg = attributes._validate_boolean('7')
+        self.assertEquals(msg, "'7' is not boolean")
+
+        msg = attributes._validate_boolean(0)
+        self.assertEquals(msg, "'0' is not boolean")
+
+        msg = attributes._validate_boolean(1)
+        self.assertEquals(msg, "'1' is not boolean")
+
+        msg = attributes._validate_boolean(7)
+        self.assertEquals(msg, "'7' is not boolean")
+
+        msg = attributes._validate_boolean(None)
+        self.assertEquals(msg, "'None' is not boolean")
+
     def test_strings(self):
         msg = attributes._validate_string(None, None)
         self.assertEquals(msg, "'None' is not a valid string")