mirror of https://github.com/scrapy/scrapy.git
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:
parent
b82c04704c
commit
b136f59daf
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in New Issue