diff options
Diffstat (limited to 'Lib/test/test_ipaddress.py')
-rw-r--r-- | Lib/test/test_ipaddress.py | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/Lib/test/test_ipaddress.py b/Lib/test/test_ipaddress.py index 56f0be3ae8..643d742e4c 100644 --- a/Lib/test/test_ipaddress.py +++ b/Lib/test/test_ipaddress.py @@ -1066,6 +1066,26 @@ class IpaddrUnitTest(unittest.TestCase): '2001:658:22a:cafe:8000::/66', '2001:658:22a:cafe:c000::/66']) + def testGetSubnets3(self): + subnets = [str(x) for x in self.ipv4_network.subnets(8)] + self.assertEqual(subnets[:3], + ['1.2.3.0/32', '1.2.3.1/32', '1.2.3.2/32']) + self.assertEqual(subnets[-3:], + ['1.2.3.253/32', '1.2.3.254/32', '1.2.3.255/32']) + self.assertEqual(len(subnets), 256) + + ipv6_network = ipaddress.IPv6Network('2001:658:22a:cafe::/120') + subnets = [str(x) for x in ipv6_network.subnets(8)] + self.assertEqual(subnets[:3], + ['2001:658:22a:cafe::/128', + '2001:658:22a:cafe::1/128', + '2001:658:22a:cafe::2/128']) + self.assertEqual(subnets[-3:], + ['2001:658:22a:cafe::fd/128', + '2001:658:22a:cafe::fe/128', + '2001:658:22a:cafe::ff/128']) + self.assertEqual(len(subnets), 256) + def testSubnetFailsForLargeCidrDiff(self): self.assertRaises(ValueError, list, self.ipv4_interface.network.subnets(9)) @@ -1670,6 +1690,7 @@ class IpaddrUnitTest(unittest.TestCase): addr3 = ipaddress.ip_network('10.2.1.0/24') addr4 = ipaddress.ip_address('10.1.1.0') addr5 = ipaddress.ip_network('2001:db8::0/32') + addr6 = ipaddress.ip_network('10.1.1.5/32') self.assertEqual(sorted(list(addr1.address_exclude(addr2))), [ipaddress.ip_network('10.1.1.64/26'), ipaddress.ip_network('10.1.1.128/25')]) @@ -1677,6 +1698,15 @@ class IpaddrUnitTest(unittest.TestCase): self.assertRaises(TypeError, list, addr1.address_exclude(addr4)) self.assertRaises(TypeError, list, addr1.address_exclude(addr5)) self.assertEqual(list(addr1.address_exclude(addr1)), []) + self.assertEqual(sorted(list(addr1.address_exclude(addr6))), + [ipaddress.ip_network('10.1.1.0/30'), + ipaddress.ip_network('10.1.1.4/32'), + ipaddress.ip_network('10.1.1.6/31'), + ipaddress.ip_network('10.1.1.8/29'), + ipaddress.ip_network('10.1.1.16/28'), + ipaddress.ip_network('10.1.1.32/27'), + ipaddress.ip_network('10.1.1.64/26'), + ipaddress.ip_network('10.1.1.128/25')]) def testHash(self): self.assertEqual(hash(ipaddress.ip_interface('10.1.1.0/24')), |