def _generate_mock_adapters(): mock_lo0 = Mock(spec=ifaddr.Adapter) mock_lo0.nice_name = "lo0" mock_lo0.ips = [ifaddr.IP("127.0.0.1", 8, "lo0")] mock_eth0 = Mock(spec=ifaddr.Adapter) mock_eth0.nice_name = "eth0" mock_eth0.ips = [ifaddr.IP(("2001:db8::", 1, 1), 8, "eth0")] mock_eth1 = Mock(spec=ifaddr.Adapter) mock_eth1.nice_name = "eth1" mock_eth1.ips = [ifaddr.IP("192.168.1.5", 23, "eth1")] mock_vtun0 = Mock(spec=ifaddr.Adapter) mock_vtun0.nice_name = "vtun0" mock_vtun0.ips = [ifaddr.IP("169.254.3.2", 16, "vtun0")] return [mock_eth0, mock_lo0, mock_eth1, mock_vtun0]
def _set_up_adapters(monkeypatch): """Helper function that creates a number of mock network adapters to be returned by ifaddr.get_adapters().""" private_24 = ifaddr.IP("192.168.0.1", 24, "private-24") private_16 = ifaddr.IP("192.168.1.1", 16, "private-16") public = ifaddr.IP("15.100.100.100", 8, "public") loopback = ifaddr.IP("127.0.0.1", 24, "loopback") link_local = ifaddr.IP("169.254.1.10", 16, "link_local") ips = [private_24, private_16, public, loopback, link_local] # Set up mock adapters adapters = OrderedDict() for index in range(len(ips)): ip = ips[index] adapters[ip.nice_name] = ifaddr._shared.Adapter(ip.nice_name, ip.nice_name, [ip], index=index + 1) # Patch the response from ifaddr.get_adapters() monkeypatch.setattr("ifaddr.get_adapters", Mock(return_value=adapters.values()))