test: add resolver-level regression tests for DNSCACHE_ENABLED=False

Add two regression tests that verify DNS results are not stored in
dnscache when DNSCACHE_ENABLED=False (cache_size=0):

- test_caching_hostname_resolver_dnscache_disabled_rejects_storage:
  verifies _CachingResolutionReceiver does not write to dnscache
  when CachingHostnameResolver is initialized with cache_size=0

- test_caching_threaded_resolver_dnscache_disabled_rejects_storage:
  verifies dnscache rejects storage at the LocalCache level
  when limit=0
This commit is contained in:
tanishqtayade 2026-06-26 03:54:48 +05:30
parent b82c04704c
commit b136f59daf
1 changed files with 31 additions and 0 deletions

View File

@ -53,3 +53,34 @@ def test_caching_hostname_resolver_no_addresses_not_cached():
resolver.resolveHostName(Mock(), "example.com")
assert "example.com" not in dnscache
def test_caching_hostname_resolver_dnscache_disabled_rejects_storage():
# Regression test for LocalCache(limit=0) rejecting storage
# when DNSCACHE_ENABLED=False. _CachingResolutionReceiver writes
# directly to dnscache, so we verify nothing is stored.
def fake_resolve(receiver, *_):
receiver.resolutionBegan(Mock())
receiver.addressResolved(Mock())
receiver.resolutionComplete()
return receiver
reactor = Mock()
reactor.nameResolver.resolveHostName.side_effect = fake_resolve
# cache_size=0 simulates DNSCACHE_ENABLED=False
resolver = CachingHostnameResolver(reactor, cache_size=0)
resolver.resolveHostName(Mock(), "example.com")
# dnscache should remain empty despite address being resolved
assert "example.com" not in dnscache
assert len(dnscache) == 0
def test_caching_threaded_resolver_dnscache_disabled_rejects_storage():
# Regression test: when DNSCACHE_ENABLED=False, resolved DNS results
# should not be stored in dnscache even after successful resolution.
dnscache.limit = 0
dnscache["example.com"] = "1.2.3.4"
assert "example.com" not in dnscache
assert len(dnscache) == 0