import pickle
import ipaddress
import weakref
+from collections.abc import Iterator
from test.support import LARGEST, SMALLEST
self.ipv6_scoped_network.supernet(new_prefix=62))
def testHosts(self):
+ hosts = self.ipv4_network.hosts()
+ self.assertIsInstance(hosts, Iterator)
+ self.assertEqual(ipaddress.IPv4Address('1.2.3.1'), next(hosts))
hosts = list(self.ipv4_network.hosts())
self.assertEqual(254, len(hosts))
self.assertEqual(ipaddress.IPv4Address('1.2.3.1'), hosts[0])
self.assertEqual(ipaddress.IPv4Address('1.2.3.254'), hosts[-1])
ipv6_network = ipaddress.IPv6Network('2001:658:22a:cafe::/120')
+ hosts = ipv6_network.hosts()
+ self.assertIsInstance(hosts, Iterator)
+ self.assertEqual(ipaddress.IPv6Address('2001:658:22a:cafe::1'), next(hosts))
hosts = list(ipv6_network.hosts())
self.assertEqual(255, len(hosts))
self.assertEqual(ipaddress.IPv6Address('2001:658:22a:cafe::1'), hosts[0])
self.assertEqual(ipaddress.IPv6Address('2001:658:22a:cafe::ff'), hosts[-1])
ipv6_scoped_network = ipaddress.IPv6Network('2001:658:22a:cafe::%scope/120')
+ hosts = ipv6_scoped_network.hosts()
+ self.assertIsInstance(hosts, Iterator)
+ self.assertEqual((ipaddress.IPv6Address('2001:658:22a:cafe::1')), next(hosts))
hosts = list(ipv6_scoped_network.hosts())
self.assertEqual(255, len(hosts))
self.assertEqual(ipaddress.IPv6Address('2001:658:22a:cafe::1'), hosts[0])
ipaddress.IPv4Address('2.0.0.1')]
str_args = '2.0.0.0/31'
tpl_args = ('2.0.0.0', 31)
+ hosts = ipaddress.ip_network(str_args).hosts()
+ self.assertIsInstance(hosts, Iterator)
+ self.assertEqual(next(hosts), addrs[0])
+ hosts = ipaddress.ip_network(tpl_args).hosts()
+ self.assertIsInstance(hosts, Iterator)
+ self.assertEqual(next(hosts), addrs[0])
self.assertEqual(addrs, list(ipaddress.ip_network(str_args).hosts()))
self.assertEqual(addrs, list(ipaddress.ip_network(tpl_args).hosts()))
self.assertEqual(list(ipaddress.ip_network(str_args).hosts()),
addrs = [ipaddress.IPv4Address('1.2.3.4')]
str_args = '1.2.3.4/32'
tpl_args = ('1.2.3.4', 32)
+ hosts = ipaddress.ip_network(str_args).hosts()
+ self.assertIsInstance(hosts, Iterator)
+ self.assertEqual(next(hosts), addrs[0])
+ hosts = ipaddress.ip_network(tpl_args).hosts()
+ self.assertIsInstance(hosts, Iterator)
+ self.assertEqual(next(hosts), addrs[0])
self.assertEqual(addrs, list(ipaddress.ip_network(str_args).hosts()))
self.assertEqual(addrs, list(ipaddress.ip_network(tpl_args).hosts()))
self.assertEqual(list(ipaddress.ip_network(str_args).hosts()),
ipaddress.IPv6Address('2001:658:22a:cafe::1')]
str_args = '2001:658:22a:cafe::/127'
tpl_args = ('2001:658:22a:cafe::', 127)
+ hosts = ipaddress.ip_network(str_args).hosts()
+ self.assertIsInstance(hosts, Iterator)
+ self.assertEqual(next(hosts), addrs[0])
+ hosts = ipaddress.ip_network(tpl_args).hosts()
+ self.assertIsInstance(hosts, Iterator)
+ self.assertEqual(next(hosts), addrs[0])
self.assertEqual(addrs, list(ipaddress.ip_network(str_args).hosts()))
self.assertEqual(addrs, list(ipaddress.ip_network(tpl_args).hosts()))
self.assertEqual(list(ipaddress.ip_network(str_args).hosts()),
addrs = [ipaddress.IPv6Address('2001:658:22a:cafe::1'), ]
str_args = '2001:658:22a:cafe::1/128'
tpl_args = ('2001:658:22a:cafe::1', 128)
+ hosts = ipaddress.ip_network(str_args).hosts()
+ self.assertIsInstance(hosts, Iterator)
+ self.assertEqual(next(hosts), addrs[0])
+ hosts = ipaddress.ip_network(tpl_args).hosts()
+ self.assertIsInstance(hosts, Iterator)
+ self.assertEqual(next(hosts), addrs[0])
self.assertEqual(addrs, list(ipaddress.ip_network(str_args).hosts()))
self.assertEqual(addrs, list(ipaddress.ip_network(tpl_args).hosts()))
self.assertEqual(list(ipaddress.ip_network(str_args).hosts()),