Merge branch 'master' of github.com:mongodb/mongo-python-driver

This commit is contained in:
Steven Silvester 2024-04-15 19:22:40 -05:00
commit a1900e3379
No known key found for this signature in database
GPG Key ID: B1BF5EC3A8B32F91
5 changed files with 9 additions and 22 deletions

View File

@ -25,10 +25,15 @@ from pymongo.errors import ConfigurationError
if TYPE_CHECKING:
from dns import resolver
else:
resolver = lazy_import("dns.resolver")
_HAVE_DNSPYTHON = True
_HAVE_DNSPYTHON = True
else:
try:
resolver = lazy_import("dns.resolver")
_HAVE_DNSPYTHON = True
except ImportError:
_HAVE_DNSPYTHON = False
# dnspython can return bytes or str from various parts

View File

@ -110,7 +110,6 @@ from pymongo.server_description import ServerDescription
from pymongo.server_selectors import readable_server_selector, writable_server_selector
from pymongo.server_type import SERVER_TYPE
from pymongo.settings import TOPOLOGY_TYPE
from pymongo.srv_resolver import _HAVE_DNSPYTHON
from pymongo.topology import _ErrorContext
from pymongo.topology_description import TopologyDescription
from pymongo.write_concern import WriteConcern
@ -455,7 +454,6 @@ class ClientUnitTest(unittest.TestCase):
self.assertEqual(clopts.replica_set_name, "newname")
self.assertEqual(clopts.read_preference, ReadPreference.SECONDARY_PREFERRED)
@unittest.skipUnless(_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 _resolve
@ -1755,7 +1753,6 @@ class TestClient(IntegrationTest):
with self.assertRaises(InvalidOperation):
coll.insert_many([{} for _ in range(5)])
@unittest.skipUnless(_HAVE_DNSPYTHON, "DNS-related tests need dnspython to be installed")
def test_service_name_from_kwargs(self):
client = MongoClient(
"mongodb+srv://user:password@test22.test.build.10gen.cc",
@ -1776,7 +1773,6 @@ class TestClient(IntegrationTest):
)
self.assertEqual(client._topology_settings.srv_service_name, "customname")
@unittest.skipUnless(_HAVE_DNSPYTHON, "DNS-related tests need dnspython to be installed")
def test_srv_max_hosts_kwarg(self):
client = MongoClient("mongodb+srv://test1.test.build.10gen.cc/")
self.assertGreater(len(client.topology_description.server_descriptions()), 1)
@ -1787,11 +1783,6 @@ class TestClient(IntegrationTest):
)
self.assertEqual(len(client.topology_description.server_descriptions()), 2)
@unittest.skipIf(_HAVE_DNSPYTHON, "dnspython must not be installed")
def test_srv_no_dnspython_error(self):
with self.assertRaisesRegex(ConfigurationError, 'The "dnspython" module must be'):
MongoClient("mongodb+srv://test1.test.build.10gen.cc/")
@unittest.skipIf(
client_context.load_balancer or client_context.serverless,
"loadBalanced clients do not run SDAM",

View File

@ -28,7 +28,6 @@ from test.utils import wait_until
from pymongo.common import validate_read_preference_tags
from pymongo.errors import ConfigurationError
from pymongo.mongo_client import MongoClient
from pymongo.srv_resolver import _HAVE_DNSPYTHON
from pymongo.uri_parser import parse_uri, split_hosts
@ -65,8 +64,6 @@ class TestDNSSharded(unittest.TestCase):
def create_test(test_case):
def run_test(self):
if not _HAVE_DNSPYTHON:
raise unittest.SkipTest("DNS tests require the dnspython module")
uri = test_case["uri"]
seeds = test_case.get("seeds")
num_seeds = test_case.get("numSeeds", len(seeds or []))
@ -161,7 +158,6 @@ create_tests(TestDNSSharded)
class TestParsingErrors(unittest.TestCase):
@unittest.skipUnless(_HAVE_DNSPYTHON, "DNS tests require the dnspython module")
def test_invalid_host(self):
self.assertRaisesRegex(
ConfigurationError,
@ -190,7 +186,6 @@ class TestParsingErrors(unittest.TestCase):
class TestCaseInsensitive(IntegrationTest):
@unittest.skipUnless(_HAVE_DNSPYTHON, "DNS tests require the dnspython module")
def test_connect_case_insensitive(self):
client = MongoClient("mongodb+srv://TEST1.TEST.BUILD.10GEN.cc/")
self.addCleanup(client.close)

View File

@ -95,8 +95,6 @@ class TestSrvPolling(unittest.TestCase):
CONNECTION_STRING = "mongodb+srv://test1.test.build.10gen.cc"
def setUp(self):
if not _HAVE_DNSPYTHON:
raise unittest.SkipTest("SRV polling tests require the dnspython module")
# Patch timeouts to ensure short rescan SRV interval.
self.client_knobs = client_knobs(
heartbeat_frequency=WAIT_TIME,
@ -150,6 +148,7 @@ class TestSrvPolling(unittest.TestCase):
return True
def run_scenario(self, dns_response, expect_change):
self.assertEqual(_HAVE_DNSPYTHON, True)
if callable(dns_response):
dns_resolver_response = dns_response
else:

View File

@ -28,7 +28,6 @@ from test import clear_warning_registry, unittest
from pymongo.common import INTERNAL_URI_OPTION_NAME_MAP, validate
from pymongo.compression_support import _HAVE_SNAPPY
from pymongo.srv_resolver import _HAVE_DNSPYTHON
from pymongo.uri_parser import SRV_SCHEME, parse_uri
CONN_STRING_TEST_PATH = os.path.join(
@ -98,8 +97,6 @@ def create_test(test, test_workdir):
compressors = (test.get("options") or {}).get("compressors", [])
if "snappy" in compressors and not _HAVE_SNAPPY:
self.skipTest("This test needs the snappy module.")
if test["uri"].startswith(SRV_SCHEME) and not _HAVE_DNSPYTHON:
self.skipTest("This test needs dnspython package.")
valid = True
warning = False
expected_warning = test.get("warning", False)