@@ -1066,6 +1066,26 @@ def testSubnet2(self):
10661066 '2001:658:22a:cafe:8000::/66' ,
10671067 '2001:658:22a:cafe:c000::/66' ])
10681068
1069+ def testGetSubnets3 (self ):
1070+ subnets = [str (x ) for x in self .ipv4_network .subnets (8 )]
1071+ self .assertEqual (subnets [:3 ],
1072+ ['1.2.3.0/32' , '1.2.3.1/32' , '1.2.3.2/32' ])
1073+ self .assertEqual (subnets [- 3 :],
1074+ ['1.2.3.253/32' , '1.2.3.254/32' , '1.2.3.255/32' ])
1075+ self .assertEqual (len (subnets ), 256 )
1076+
1077+ ipv6_network = ipaddress .IPv6Network ('2001:658:22a:cafe::/120' )
1078+ subnets = [str (x ) for x in ipv6_network .subnets (8 )]
1079+ self .assertEqual (subnets [:3 ],
1080+ ['2001:658:22a:cafe::/128' ,
1081+ '2001:658:22a:cafe::1/128' ,
1082+ '2001:658:22a:cafe::2/128' ])
1083+ self .assertEqual (subnets [- 3 :],
1084+ ['2001:658:22a:cafe::fd/128' ,
1085+ '2001:658:22a:cafe::fe/128' ,
1086+ '2001:658:22a:cafe::ff/128' ])
1087+ self .assertEqual (len (subnets ), 256 )
1088+
10691089 def testSubnetFailsForLargeCidrDiff (self ):
10701090 self .assertRaises (ValueError , list ,
10711091 self .ipv4_interface .network .subnets (9 ))
@@ -1670,13 +1690,23 @@ def testAddrExclude(self):
16701690 addr3 = ipaddress .ip_network ('10.2.1.0/24' )
16711691 addr4 = ipaddress .ip_address ('10.1.1.0' )
16721692 addr5 = ipaddress .ip_network ('2001:db8::0/32' )
1693+ addr6 = ipaddress .ip_network ('10.1.1.5/32' )
16731694 self .assertEqual (sorted (list (addr1 .address_exclude (addr2 ))),
16741695 [ipaddress .ip_network ('10.1.1.64/26' ),
16751696 ipaddress .ip_network ('10.1.1.128/25' )])
16761697 self .assertRaises (ValueError , list , addr1 .address_exclude (addr3 ))
16771698 self .assertRaises (TypeError , list , addr1 .address_exclude (addr4 ))
16781699 self .assertRaises (TypeError , list , addr1 .address_exclude (addr5 ))
16791700 self .assertEqual (list (addr1 .address_exclude (addr1 )), [])
1701+ self .assertEqual (sorted (list (addr1 .address_exclude (addr6 ))),
1702+ [ipaddress .ip_network ('10.1.1.0/30' ),
1703+ ipaddress .ip_network ('10.1.1.4/32' ),
1704+ ipaddress .ip_network ('10.1.1.6/31' ),
1705+ ipaddress .ip_network ('10.1.1.8/29' ),
1706+ ipaddress .ip_network ('10.1.1.16/28' ),
1707+ ipaddress .ip_network ('10.1.1.32/27' ),
1708+ ipaddress .ip_network ('10.1.1.64/26' ),
1709+ ipaddress .ip_network ('10.1.1.128/25' )])
16801710
16811711 def testHash (self ):
16821712 self .assertEqual (hash (ipaddress .ip_interface ('10.1.1.0/24' )),
0 commit comments