Merge "Fix _validate_mac_address method"
This commit is contained in:
@@ -153,9 +153,16 @@ def _validate_no_whitespace(data):
|
|||||||
|
|
||||||
|
|
||||||
def _validate_mac_address(data, valid_values=None):
|
def _validate_mac_address(data, valid_values=None):
|
||||||
|
valid_mac = False
|
||||||
try:
|
try:
|
||||||
netaddr.EUI(_validate_no_whitespace(data))
|
valid_mac = netaddr.valid_mac(_validate_no_whitespace(data))
|
||||||
except Exception:
|
except Exception:
|
||||||
|
pass
|
||||||
|
finally:
|
||||||
|
# TODO(arosen): The code in this file should be refactored
|
||||||
|
# so it catches the correct exceptions. _validate_no_whitespace
|
||||||
|
# raises AttributeError if data is None.
|
||||||
|
if valid_mac is False:
|
||||||
msg = _("'%s' is not a valid MAC address") % data
|
msg = _("'%s' is not a valid MAC address") % data
|
||||||
LOG.debug(msg)
|
LOG.debug(msg)
|
||||||
return msg
|
return msg
|
||||||
|
|||||||
@@ -176,14 +176,19 @@ class TestAttributes(base.BaseTestCase):
|
|||||||
|
|
||||||
mac_addr = "ffa:16:3e:4f:00:00"
|
mac_addr = "ffa:16:3e:4f:00:00"
|
||||||
msg = validator(mac_addr)
|
msg = validator(mac_addr)
|
||||||
self.assertEqual(msg, "'%s' is not a valid MAC address" % mac_addr)
|
err_msg = "'%s' is not a valid MAC address"
|
||||||
|
self.assertEqual(msg, err_msg % mac_addr)
|
||||||
|
|
||||||
|
mac_addr = "123"
|
||||||
|
msg = validator(mac_addr)
|
||||||
|
self.assertEqual(msg, err_msg % mac_addr)
|
||||||
|
|
||||||
mac_addr = None
|
mac_addr = None
|
||||||
msg = validator(mac_addr)
|
msg = validator(mac_addr)
|
||||||
if allow_none:
|
if allow_none:
|
||||||
self.assertIsNone(msg)
|
self.assertIsNone(msg)
|
||||||
else:
|
else:
|
||||||
self.assertEqual(msg, "'None' is not a valid MAC address")
|
self.assertEqual(msg, err_msg % mac_addr)
|
||||||
|
|
||||||
def test_validate_mac_address(self):
|
def test_validate_mac_address(self):
|
||||||
self._test_validate_mac_address(attributes._validate_mac_address)
|
self._test_validate_mac_address(attributes._validate_mac_address)
|
||||||
|
|||||||
Reference in New Issue
Block a user