예제 #1
0
def test_cached_dns_lookup_is_persisted_cached_ok(
        monkeypatch: MonkeyPatch) -> None:

    config_ipcache = _empty()
    persisted_cache = {
        (HostName("persisted_cached_host"), socket.AF_INET): "1.2.3.4"
    }

    patch_config_cache(monkeypatch, config_ipcache)
    patch_persisted_cache(monkeypatch, persisted_cache)
    patch_actual_lookup(
        monkeypatch,
        {(HostName("persisted_cached_host"), socket.AF_INET): "6.6.6.6"})

    assert (ip_lookup.cached_dns_lookup(
        HostName("persisted_cached_host"),
        family=socket.AF_INET,
        force_file_cache_renewal=False,
    ) == "1.2.3.4")
    assert config_ipcache.pop(
        (HostName("persisted_cached_host"), socket.AF_INET)) == "1.2.3.4"
    assert persisted_cache[(HostName("persisted_cached_host"),
                            socket.AF_INET)] == "1.2.3.4"

    assert (ip_lookup.cached_dns_lookup(
        HostName("persisted_cached_host"),
        family=socket.AF_INET,
        force_file_cache_renewal=True,
    ) == "6.6.6.6")
    assert config_ipcache[(HostName("persisted_cached_host"),
                           socket.AF_INET)] == "6.6.6.6"
    assert persisted_cache[(HostName("persisted_cached_host"),
                            socket.AF_INET)] == "6.6.6.6"
예제 #2
0
def test_cached_dns_lookup_raises_once(monkeypatch: MonkeyPatch) -> None:

    config_ipcache = _empty()
    persisted_cache = _empty()

    patch_config_cache(monkeypatch, config_ipcache)
    patch_persisted_cache(monkeypatch, persisted_cache)
    patch_actual_lookup(monkeypatch, {})

    with pytest.raises(ip_lookup.MKIPAddressLookupError):
        _ = ip_lookup.cached_dns_lookup(
            HostName("test_host"),
            family=socket.AF_INET,
            force_file_cache_renewal=False,
        )

    assert (ip_lookup.cached_dns_lookup(
        HostName("test_host"),
        family=socket.AF_INET,
        force_file_cache_renewal=False,
    ) is None)
    assert (ip_lookup.cached_dns_lookup(
        HostName("test_host"),
        family=socket.AF_INET,
        force_file_cache_renewal=True,
    ) is None)
예제 #3
0
def test_cached_dns_lookup_uncached(monkeypatch: MonkeyPatch) -> None:

    config_ipcache = _empty()
    persisted_cache = _empty()

    patch_config_cache(monkeypatch, config_ipcache)
    patch_persisted_cache(monkeypatch, persisted_cache)
    patch_actual_lookup(monkeypatch,
                        {(HostName("test_host"), socket.AF_INET): "3.1.4.1"})

    assert (ip_lookup.cached_dns_lookup(
        HostName("test_host"),
        family=socket.AF_INET,
        force_file_cache_renewal=False,
    ) == "3.1.4.1")
    assert config_ipcache.pop(
        (HostName("test_host"), socket.AF_INET)) == "3.1.4.1"
    assert persisted_cache.pop(
        (HostName("test_host"), socket.AF_INET)) == "3.1.4.1"

    assert (ip_lookup.cached_dns_lookup(
        HostName("test_host"),
        family=socket.AF_INET,
        force_file_cache_renewal=True,
    ) == "3.1.4.1")
    assert config_ipcache[(HostName("test_host"), socket.AF_INET)] == "3.1.4.1"
    assert persisted_cache[(HostName("test_host"),
                            socket.AF_INET)] == "3.1.4.1"
예제 #4
0
def test_cached_dns_lookup_is_config_cached_none(
        monkeypatch: MonkeyPatch) -> None:
    patch_config_cache(
        monkeypatch,
        {(HostName("the_host_that_raised"), socket.AF_INET6): None})
    patch_persisted_cache(monkeypatch, _empty())
    patch_actual_lookup(monkeypatch, _empty())

    assert (ip_lookup.cached_dns_lookup(
        HostName("the_host_that_raised"),
        family=socket.AF_INET6,
        force_file_cache_renewal=False,
    ) is None)
    assert (ip_lookup.cached_dns_lookup(
        HostName("the_host_that_raised"),
        family=socket.AF_INET6,
        force_file_cache_renewal=True,
    ) is None)
예제 #5
0
def test_cached_dns_lookup_is_config_cached_ok(
        monkeypatch: MonkeyPatch) -> None:
    patch_config_cache(
        monkeypatch,
        {(HostName("config_cached_host"), socket.AF_INET): "1.2.3.4"})
    patch_persisted_cache(
        monkeypatch,
        {(HostName("config_cached_host"), socket.AF_INET): "6.6.6.6"})
    patch_actual_lookup(
        monkeypatch,
        {(HostName("config_cached_host"), socket.AF_INET): "7.7.7.7"})

    assert (ip_lookup.cached_dns_lookup(
        HostName("config_cached_host"),
        family=socket.AF_INET,
        force_file_cache_renewal=False,
    ) == "1.2.3.4")
    assert (ip_lookup.cached_dns_lookup(
        HostName("config_cached_host"),
        family=socket.AF_INET,
        force_file_cache_renewal=True,
    ) == "1.2.3.4")
예제 #6
0
def test_filecache_beats_failing_lookup(monkeypatch: MonkeyPatch) -> None:

    config_ipcache = _empty()
    persisted_cache = {(HostName("test_host"), socket.AF_INET): "3.1.4.1"}

    patch_config_cache(monkeypatch, config_ipcache)
    patch_persisted_cache(monkeypatch, persisted_cache)
    patch_actual_lookup(monkeypatch, {})

    assert (ip_lookup.cached_dns_lookup(
        HostName("test_host"),
        family=socket.AF_INET,
        force_file_cache_renewal=True,
    ) == "3.1.4.1")
    assert persisted_cache[(HostName("test_host"), socket.AF_INET)]