def test_remove_ipv6(self): '''Removes an IPv6 address and confirms it''' interface_cfg = NetworkInterfaceConfig('dummy0') interface_cfg.add_v6_ip('fd00:a3b1:78a2::1', 64) interface_cfg.remove_ip('fd00:a3b1:78a2::1') if interface_cfg.get_ips(): self.fail("dummy configuration returned an IP!")
def test_add_ipv6(self): '''Adds an IPv6 address and then confirms it''' interface_cfg = NetworkInterfaceConfig('dummy0') interface_cfg.add_v6_ip('fd00:a3b1:78a2::1', 64) ips = interface_cfg.get_ips() self.assertEqual(len(ips), 1, "dummy interface either didn't get the IP or has multiple!") self.assertEqual(ips[0]['ip_address'], 'fd00:a3b1:78a2::1', "IP assignment failure!") self.assertEqual(ips[0]['family'], AF_INET6, "IP assignment failure!") self.assertEqual(ips[0]['prefix_length'], 64, "IP assignment failure!")
def test_ipv6_multicast_reject(self): '''Rejects if address is IPv6 multicast''' interface_cfg = NetworkInterfaceConfig('dummy0') with self.assertRaises(ValueError): interface_cfg.add_v6_ip(ip_address="ff05::1:3", prefix_length=128)
def test_ipv6_reserved_reject(self): '''Rejects if the IP is in reserved address space''' interface_cfg = NetworkInterfaceConfig('dummy0') with self.assertRaises(ValueError): interface_cfg.add_v6_ip(ip_address='dead:beef::', prefix_length=64)
def test_ipv6_loopback_address_reject(self): '''Rejects if we try to assign loopback''' interface_cfg = NetworkInterfaceConfig('dummy0') with self.assertRaises(ValueError): interface_cfg.add_v6_ip(ip_address='::1', prefix_length=128)