def test_update_dns_cache(monkeypatch, _cache_file): def _getaddrinfo(host, port, family=None, socktype=None, proto=None, flags=None): # Needs to return [(family, type, proto, canonname, sockaddr)] but only # caring about the address return { ("blub", socket.AF_INET): [(family, None, None, None, ("127.0.0.13", 1337))], ("bla", socket.AF_INET): [(family, None, None, None, ("127.0.0.37", 1337))], ("dual", socket.AF_INET): [(family, None, None, None, ("127.0.0.42", 1337))], }[(host, family)] monkeypatch.setattr(socket, "getaddrinfo", _getaddrinfo) ts = Scenario() ts.add_host("blub", tags={"criticality": "offline"}) ts.add_host("bla") ts.add_host("dual", tags={"address_family": "ip-v4v6"}) ts.apply(monkeypatch) assert ip_lookup.update_dns_cache() == (3, ["dual"]) # Check persisted data cache = ip_lookup._load_ip_lookup_cache(lock=False) assert cache[("blub", 4)] == "127.0.0.13" assert ("dual", 6) not in cache
def test_update_dns_cache(monkeypatch: MonkeyPatch) -> None: def _getaddrinfo(host, port, family=None, socktype=None, proto=None, flags=None): # Needs to return [(family, type, proto, canonname, sockaddr)] but only # caring about the address return { ("blub", socket.AF_INET): [(family, None, None, None, ("127.0.0.13", 1337))], ("bla", socket.AF_INET): [(family, None, None, None, ("127.0.0.37", 1337))], ("dual", socket.AF_INET): [(family, None, None, None, ("127.0.0.42", 1337))], }[(host, family)] monkeypatch.setattr(socket, "getaddrinfo", _getaddrinfo) ts = Scenario() ts.add_host(HostName("blub"), tags={"criticality": "offline"}) ts.add_host(HostName("bla")) ts.add_host(HostName("dual"), tags={"address_family": "ip-v4v6"}) ts.apply(monkeypatch) config_cache = config.get_config_cache() assert (ip_lookup.update_dns_cache( host_configs=(config_cache.get_host_config(hn) for hn in config_cache.all_active_hosts()), configured_ipv4_addresses={}, configured_ipv6_addresses={}, simulation_mode=False, override_dns=None, ) == (3, ["dual"])) # Check persisted data cache = ip_lookup.IPLookupCache({}) cache.load_persisted() assert cache[(HostName("blub"), socket.AF_INET)] == "127.0.0.13" assert cache.get((HostName("dual"), socket.AF_INET6)) is None