From 29a31c152caacdb4d73acb534260443fd07801b0 Mon Sep 17 00:00:00 2001 From: YAMAMOTO Takashi Date: Thu, 8 Jun 2017 17:39:58 +0900 Subject: [PATCH] Make port_range validator accept an integer It used to accept an integer but it has been changed for some reasons when migrating to neutron-lib. For compatibility, it's better to keep the original behaviour. After all, the original behaviour seems reasonable to me. Closes-Bug: #1696682 Related-Bug: #1696389 Change-Id: I60e1a99780202de14522f592288d3a9af7a75592 --- neutron_lib/api/validators/__init__.py | 5 +---- neutron_lib/tests/unit/api/validators/test_validators.py | 6 +++++- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/neutron_lib/api/validators/__init__.py b/neutron_lib/api/validators/__init__.py index e1bcd57..fabc21d 100644 --- a/neutron_lib/api/validators/__init__.py +++ b/neutron_lib/api/validators/__init__.py @@ -925,10 +925,7 @@ def validate_port_range_or_none(data, valid_values=None): """ if data is None: return - if validate_string_or_none(data): - msg = _("Port range must be a string.") - LOG.debug(msg) - return msg + data = str(data) ports = data.split(':') if len(ports) > 2: msg = _("Port range must be two integers separated by a colon.") diff --git a/neutron_lib/tests/unit/api/validators/test_validators.py b/neutron_lib/tests/unit/api/validators/test_validators.py index ea73f03..a5e1d5d 100644 --- a/neutron_lib/tests/unit/api/validators/test_validators.py +++ b/neutron_lib/tests/unit/api/validators/test_validators.py @@ -1102,6 +1102,10 @@ class TestPortRangeValidation(base.BaseTestCase): result = validators.validate_port_range_or_none("80") self.assertIsNone(result) + def test_valid_port_integer(self): + result = validators.validate_port_range_or_none(80) + self.assertIsNone(result) + def test_valid_range(self): result = validators.validate_port_range_or_none("80:8888") self.assertIsNone(result) @@ -1133,7 +1137,7 @@ class TestPortRangeValidation(base.BaseTestCase): def test_range_bad_input(self): result = validators.validate_port_range_or_none(['a', 'b', 'c']) - self.assertEqual(u"Port range must be a string.", result) + self.assertEqual(u"Invalid port: ['a', 'b', 'c'].", result) def test_range_colon(self): result = validators.validate_port_range_or_none(":")