PYTHON-2364 Replace deprecated dns.resolver.query with dns.resolver.resolve (#598)
Fall back to dns.resolver.query for dns v1 compat.
This commit is contained in:
parent
1818553fc9
commit
fac0372ba0
@ -16,6 +16,13 @@
|
||||
|
||||
try:
|
||||
from dns import resolver
|
||||
|
||||
try:
|
||||
# dnspython >= 2
|
||||
from dns.resolver import resolve as _resolve
|
||||
except ImportError:
|
||||
# dnspython 1.X
|
||||
from dns.resolver import query as _resolve
|
||||
_HAVE_DNSPYTHON = True
|
||||
except ImportError:
|
||||
_HAVE_DNSPYTHON = False
|
||||
@ -48,8 +55,8 @@ class _SrvResolver(object):
|
||||
|
||||
def get_options(self):
|
||||
try:
|
||||
results = resolver.query(self.__fqdn, 'TXT',
|
||||
lifetime=self.__connect_timeout)
|
||||
results = _resolve(self.__fqdn, 'TXT',
|
||||
lifetime=self.__connect_timeout)
|
||||
except (resolver.NoAnswer, resolver.NXDOMAIN):
|
||||
# No TXT records
|
||||
return None
|
||||
@ -63,8 +70,8 @@ class _SrvResolver(object):
|
||||
|
||||
def _resolve_uri(self, encapsulate_errors):
|
||||
try:
|
||||
results = resolver.query('_mongodb._tcp.' + self.__fqdn, 'SRV',
|
||||
lifetime=self.__connect_timeout)
|
||||
results = _resolve('_mongodb._tcp.' + self.__fqdn, 'SRV',
|
||||
lifetime=self.__connect_timeout)
|
||||
except Exception as exc:
|
||||
if not encapsulate_errors:
|
||||
# Raise the original error.
|
||||
|
||||
@ -392,11 +392,11 @@ class ClientUnitTest(unittest.TestCase):
|
||||
_HAVE_DNSPYTHON, "DNS-related tests need dnspython to be installed")
|
||||
def test_connection_timeout_ms_propagates_to_DNS_resolver(self):
|
||||
# Patch the resolver.
|
||||
from pymongo.srv_resolver import resolver
|
||||
patched_resolver = FunctionCallRecorder(resolver.query)
|
||||
pymongo.srv_resolver.resolver.query = patched_resolver
|
||||
from pymongo.srv_resolver import _resolve
|
||||
patched_resolver = FunctionCallRecorder(_resolve)
|
||||
pymongo.srv_resolver._resolve = patched_resolver
|
||||
def reset_resolver():
|
||||
pymongo.srv_resolver.resolver.query = resolver.query
|
||||
pymongo.srv_resolver._resolve = _resolve
|
||||
self.addCleanup(reset_resolver)
|
||||
|
||||
# Setup.
|
||||
|
||||
Loading…
Reference in New Issue
Block a user