diff --git a/pymongo/srv_resolver.py b/pymongo/srv_resolver.py index fa880f031..4ee1b1f5b 100644 --- a/pymongo/srv_resolver.py +++ b/pymongo/srv_resolver.py @@ -17,23 +17,17 @@ from __future__ import annotations import ipaddress import random -from typing import TYPE_CHECKING, Any, Optional, Union +from typing import Any, Optional, Union -from pymongo._lazy_import import lazy_import from pymongo.common import CONNECT_TIMEOUT from pymongo.errors import ConfigurationError -if TYPE_CHECKING: +try: from dns import resolver _HAVE_DNSPYTHON = True -else: - try: - resolver = lazy_import("dns.resolver") - - _HAVE_DNSPYTHON = True - except ImportError: - _HAVE_DNSPYTHON = False +except ImportError: + _HAVE_DNSPYTHON = False # dnspython can return bytes or str from various parts diff --git a/pyproject.toml b/pyproject.toml index a48baa09a..4520ba08c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -43,7 +43,7 @@ classifiers = [ [project.urls] Homepage = "https://www.mongodb.org" Documentation = "https://pymongo.readthedocs.io" -Source = "https://github.com/mongodb/pymongo" +Source = "https://github.com/mongodb/mongo-python-driver" Tracker = "https://jira.mongodb.org/projects/PYTHON/issues" [tool.setuptools.dynamic] diff --git a/test/test_srv_polling.py b/test/test_srv_polling.py index 18de261da..32646b994 100644 --- a/test/test_srv_polling.py +++ b/test/test_srv_polling.py @@ -345,6 +345,12 @@ class TestSrvPolling(unittest.TestCase): AssertionError, self.assert_nodelist_change, modified, client, timeout=WAIT_TIME / 2 ) + def test_import_dns_resolver(self): + # Regression test for PYTHON-4407 + import dns.resolver + + self.assertTrue(hasattr(dns.resolver, "resolve")) + if __name__ == "__main__": unittest.main()