Merge "Add method is_valid_ipv6_cidr"
This commit is contained in:
commit
387920e018
@ -137,6 +137,22 @@ def is_valid_cidr(address):
|
||||
return True
|
||||
|
||||
|
||||
def is_valid_ipv6_cidr(address):
|
||||
"""Verify that address represents a valid IPv6 CIDR address.
|
||||
|
||||
:param address: address to verify
|
||||
:type address: string
|
||||
:returns: true if address is valid, false otherwise
|
||||
|
||||
.. versionadded:: 3.17
|
||||
"""
|
||||
try:
|
||||
netaddr.IPNetwork(address, version=6).cidr
|
||||
return True
|
||||
except (TypeError, netaddr.AddrFormatError):
|
||||
return False
|
||||
|
||||
|
||||
def get_ipv6_addr_by_EUI64(prefix, mac):
|
||||
"""Calculate IPv6 address using EUI-64 specification.
|
||||
|
||||
|
@ -191,6 +191,17 @@ class NetworkUtilsTest(test_base.BaseTestCase):
|
||||
self.assertFalse(netutils.is_valid_cidr('10.0.0.1/33'))
|
||||
self.assertFalse(netutils.is_valid_cidr(10))
|
||||
|
||||
def test_is_valid_ipv6_cidr(self):
|
||||
self.assertTrue(netutils.is_valid_ipv6_cidr("2600::/64"))
|
||||
self.assertTrue(netutils.is_valid_ipv6_cidr(
|
||||
"abcd:ef01:2345:6789:abcd:ef01:192.168.254.254/48"))
|
||||
self.assertTrue(netutils.is_valid_ipv6_cidr(
|
||||
"0000:0000:0000:0000:0000:0000:0000:0001/32"))
|
||||
self.assertTrue(netutils.is_valid_ipv6_cidr(
|
||||
"0000:0000:0000:0000:0000:0000:0000:0001"))
|
||||
self.assertFalse(netutils.is_valid_ipv6_cidr("foo"))
|
||||
self.assertFalse(netutils.is_valid_ipv6_cidr("127.0.0.1"))
|
||||
|
||||
def test_valid_port(self):
|
||||
valid_inputs = [0, '0', 1, '1', 2, '3', '5', 8, 13, 21,
|
||||
'80', '3246', '65535']
|
||||
|
Loading…
x
Reference in New Issue
Block a user