From c29030fdb4dc574e9b8d3757cbf9ad3c166b2020 Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Wed, 16 Feb 2022 14:35:47 -0600 Subject: [PATCH 1/4] PYTHON-3131 Test Failure - test_mypy on macos + auth --- test/test_mypy.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/test/test_mypy.py b/test/test_mypy.py index 0f1498c64b..09a7a60ecb 100644 --- a/test/test_mypy.py +++ b/test/test_mypy.py @@ -25,6 +25,9 @@ except ImportError: api = None +from test import client_context +from test.utils import rs_or_single_client_noauth + from bson.son import SON from pymongo.collection import Collection from pymongo.errors import ServerSelectionTimeoutError @@ -58,8 +61,11 @@ class TestPymongo(unittest.TestCase): coll: Collection @classmethod + @client_context.require_connection def setUpClass(cls) -> None: - cls.client = MongoClient(serverSelectionTimeoutMS=250, directConnection=False) + cls.client = rs_or_single_client_noauth( + serverSelectionTimeoutMS=250, directConnection=False + ) cls.coll = cls.client.test.test try: cls.client.admin.command("ping") From e1b0b35ec31eab634a8b789ebfe37dbed61dc135 Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Wed, 16 Feb 2022 14:46:49 -0600 Subject: [PATCH 2/4] require no auth --- test/test_mypy.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/test/test_mypy.py b/test/test_mypy.py index 09a7a60ecb..f6b79cf817 100644 --- a/test/test_mypy.py +++ b/test/test_mypy.py @@ -26,7 +26,7 @@ api = None from test import client_context -from test.utils import rs_or_single_client_noauth +from test.utils import rs_or_single_client from bson.son import SON from pymongo.collection import Collection @@ -63,9 +63,7 @@ class TestPymongo(unittest.TestCase): @classmethod @client_context.require_connection def setUpClass(cls) -> None: - cls.client = rs_or_single_client_noauth( - serverSelectionTimeoutMS=250, directConnection=False - ) + cls.client = rs_or_single_client(serverSelectionTimeoutMS=250, directConnection=False) cls.coll = cls.client.test.test try: cls.client.admin.command("ping") @@ -76,6 +74,7 @@ def setUpClass(cls) -> None: def tearDownClass(cls) -> None: cls.client.close() + @client_context.require_no_auth def test_insert_find(self) -> None: doc = {"my": "doc"} coll2 = self.client.test.test2 @@ -88,6 +87,7 @@ def test_insert_find(self) -> None: result2 = coll2.insert_one(retreived) self.assertEqual(result2.inserted_id, result.inserted_id) + @client_context.require_no_auth def test_cursor_iterable(self) -> None: def to_list(iterable: Iterable[Dict[str, Any]]) -> List[Dict[str, Any]]: return list(iterable) @@ -97,12 +97,14 @@ def to_list(iterable: Iterable[Dict[str, Any]]) -> List[Dict[str, Any]]: docs = to_list(cursor) self.assertTrue(docs) + @client_context.require_no_auth def test_bulk_write(self) -> None: self.coll.insert_one({}) requests = [InsertOne({})] result = self.coll.bulk_write(requests) self.assertTrue(result.acknowledged) + @client_context.require_no_auth def test_aggregate_pipeline(self) -> None: coll3 = self.client.test.test3 coll3.insert_many( From 8436ec120e4e46355bf83970a038ed24a551608d Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Wed, 16 Feb 2022 15:26:45 -0600 Subject: [PATCH 3/4] try simplification --- test/test_mypy.py | 28 ++-------------------------- 1 file changed, 2 insertions(+), 26 deletions(-) diff --git a/test/test_mypy.py b/test/test_mypy.py index f6b79cf817..5f78b19a51 100644 --- a/test/test_mypy.py +++ b/test/test_mypy.py @@ -25,13 +25,10 @@ except ImportError: api = None -from test import client_context -from test.utils import rs_or_single_client +from test import IntegrationTest from bson.son import SON from pymongo.collection import Collection -from pymongo.errors import ServerSelectionTimeoutError -from pymongo.mongo_client import MongoClient from pymongo.operations import InsertOne TEST_PATH = os.path.join(os.path.dirname(os.path.realpath(__file__)), "mypy_fails") @@ -56,25 +53,7 @@ def test_mypy_failures(self) -> None: self.ensure_mypy_fails(filename) -class TestPymongo(unittest.TestCase): - client: MongoClient - coll: Collection - - @classmethod - @client_context.require_connection - def setUpClass(cls) -> None: - cls.client = rs_or_single_client(serverSelectionTimeoutMS=250, directConnection=False) - cls.coll = cls.client.test.test - try: - cls.client.admin.command("ping") - except ServerSelectionTimeoutError as exc: - raise unittest.SkipTest(f"Could not connect to MongoDB: {exc}") - - @classmethod - def tearDownClass(cls) -> None: - cls.client.close() - - @client_context.require_no_auth +class TestPymongo(IntegrationTest): def test_insert_find(self) -> None: doc = {"my": "doc"} coll2 = self.client.test.test2 @@ -87,7 +66,6 @@ def test_insert_find(self) -> None: result2 = coll2.insert_one(retreived) self.assertEqual(result2.inserted_id, result.inserted_id) - @client_context.require_no_auth def test_cursor_iterable(self) -> None: def to_list(iterable: Iterable[Dict[str, Any]]) -> List[Dict[str, Any]]: return list(iterable) @@ -97,14 +75,12 @@ def to_list(iterable: Iterable[Dict[str, Any]]) -> List[Dict[str, Any]]: docs = to_list(cursor) self.assertTrue(docs) - @client_context.require_no_auth def test_bulk_write(self) -> None: self.coll.insert_one({}) requests = [InsertOne({})] result = self.coll.bulk_write(requests) self.assertTrue(result.acknowledged) - @client_context.require_no_auth def test_aggregate_pipeline(self) -> None: coll3 = self.client.test.test3 coll3.insert_many( From c58ad19a155179cd2a8a20c97abad47af8971b23 Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Wed, 16 Feb 2022 15:33:19 -0600 Subject: [PATCH 4/4] cleanup --- test/test_mypy.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/test/test_mypy.py b/test/test_mypy.py index 5f78b19a51..5b9746f723 100644 --- a/test/test_mypy.py +++ b/test/test_mypy.py @@ -54,6 +54,13 @@ def test_mypy_failures(self) -> None: class TestPymongo(IntegrationTest): + coll: Collection + + @classmethod + def setUpClass(cls): + super().setUpClass() + cls.coll = cls.client.test.test + def test_insert_find(self) -> None: doc = {"my": "doc"} coll2 = self.client.test.test2