Skip to content

Commit fd7ed97

Browse files
committed
In tests, don't configure the dns.resolver.Resolver when using mocked DNS data
The mocked DNS response class, which allows tests to run without a live Internet connection, creates a dns.resolver.Resolver that still tries to be configured using /etc/resolve.conf. That fails when the file cannot be read. When using mocked data, this is now disabled. Fixes #127.
1 parent a584257 commit fd7ed97

File tree

2 files changed

+4
-3
lines changed

2 files changed

+4
-3
lines changed

email_validator/deliverability.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@
66
import dns.exception
77

88

9-
def caching_resolver(*, timeout: Optional[int] = None, cache=None):
9+
def caching_resolver(*, timeout: Optional[int] = None, cache=None, dns_resolver=None):
1010
if timeout is None:
1111
from . import DEFAULT_TIMEOUT
1212
timeout = DEFAULT_TIMEOUT
13-
resolver = dns.resolver.Resolver()
13+
resolver = dns_resolver or dns.resolver.Resolver()
1414
resolver.cache = cache or dns.resolver.LRUCache() # type: ignore
1515
resolver.lifetime = timeout # type: ignore # timeout, in seconds
1616
return resolver

tests/mocked_dns_response.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,8 @@ def create_resolver():
3232

3333
# Return a new dns.resolver.Resolver configured for caching
3434
# using the singleton instance.
35-
return caching_resolver(cache=MockedDnsResponseData.INSTANCE)
35+
dns_resolver = dns.resolver.Resolver(configure=BUILD_MOCKED_DNS_RESPONSE_DATA)
36+
return caching_resolver(cache=MockedDnsResponseData.INSTANCE, dns_resolver=dns_resolver)
3637

3738
def __init__(self):
3839
self.data = {}

0 commit comments

Comments
 (0)