From 3d07b3380debbd98055aeea80c182c940469f3e0 Mon Sep 17 00:00:00 2001 From: Zhongyue Luo Date: Tue, 6 Nov 2012 11:01:00 +0800 Subject: [PATCH] Use isinstance for _validate_boolean Makes _validate_boolean's validation condition more strict Change-Id: I286934cab3ccbb3f6d965a37dd2ade6b5dcdfb0a --- quantum/api/v2/attributes.py | 2 +- quantum/tests/unit/test_attributes.py | 40 +++++++++++++++++++++++++++ 2 files changed, 41 insertions(+), 1 deletion(-) diff --git a/quantum/api/v2/attributes.py b/quantum/api/v2/attributes.py index 80a5dae84..003b520df 100644 --- a/quantum/api/v2/attributes.py +++ b/quantum/api/v2/attributes.py @@ -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 diff --git a/quantum/tests/unit/test_attributes.py b/quantum/tests/unit/test_attributes.py index 08654c6d1..2b930b0eb 100644 --- a/quantum/tests/unit/test_attributes.py +++ b/quantum/tests/unit/test_attributes.py @@ -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") -- 2.45.2