diff --git a/quantum/api/v2/attributes.py b/quantum/api/v2/attributes.py index 77e8e4692e..7decaad6e6 100644 --- a/quantum/api/v2/attributes.py +++ b/quantum/api/v2/attributes.py @@ -64,12 +64,9 @@ def _validate_string(data, max_len=None): def _validate_range(data, valid_values=None): min_value = valid_values[0] max_value = valid_values[1] - if data >= min_value and data <= max_value: - return - else: - msg_dict = dict(data=data, min_value=min_value, max_value=max_value) - msg = _("%(data)s is not in range %(min_value)s through " - "%(max_value)s") % msg_dict + if not min_value <= data <= max_value: + msg = _("'%(data)s' is not in range %(min_value)s through " + "%(max_value)s") % locals() LOG.debug("validate_range: %s", msg) return msg diff --git a/quantum/tests/unit/test_attributes.py b/quantum/tests/unit/test_attributes.py index d73aeaa2e3..ef8ec97a85 100644 --- a/quantum/tests/unit/test_attributes.py +++ b/quantum/tests/unit/test_attributes.py @@ -89,6 +89,31 @@ class TestAttributes(unittest2.TestCase): msg = attributes._validate_string("1234567890", 9) self.assertIsNotNone(msg) + def test_range(self): + msg = attributes._validate_range(1, [1, 9]) + self.assertIsNone(msg) + + msg = attributes._validate_range(5, [1, 9]) + self.assertIsNone(msg) + + msg = attributes._validate_range(9, [1, 9]) + self.assertIsNone(msg) + + msg = attributes._validate_range(1, (1, 9)) + self.assertIsNone(msg) + + msg = attributes._validate_range(5, (1, 9)) + self.assertIsNone(msg) + + msg = attributes._validate_range(9, (1, 9)) + self.assertIsNone(msg) + + msg = attributes._validate_range(0, [1, 9]) + self.assertEquals(msg, "'0' is not in range 1 through 9") + + msg = attributes._validate_range(10, (1, 9)) + self.assertEquals(msg, "'10' is not in range 1 through 9") + def test_ip_pools(self): pools = [[{'end': '10.0.0.254'}], [{'start': '10.0.0.254'}],