From 587e448b6965e9dc6ed58a4e3e291039ea930dc6 Mon Sep 17 00:00:00 2001 From: Bernie Hackett Date: Mon, 2 Jul 2018 19:35:57 -0700 Subject: [PATCH] PYTHON-1604 - Stop testing reindex with mongos and MongoDB 4.1+ --- test/__init__.py | 7 +++++++ test/test_collection.py | 3 +++ test/test_session.py | 18 ++++++++++++------ 3 files changed, 22 insertions(+), 6 deletions(-) diff --git a/test/__init__.py b/test/__init__.py index 9d854360a..69d360335 100644 --- a/test/__init__.py +++ b/test/__init__.py @@ -594,6 +594,13 @@ class ClientContext(object): new_func = self.require_version_min(4, 0, 0, -1)(func) return self.require_replica_set(new_func) + @property + def supports_reindex(self): + """Does the connected server support reindex?""" + return not ( + self.version.at_least(4, 1, 0) and + self.is_mongos) + # Reusable client context client_context = ClientContext() diff --git a/test/test_collection.py b/test/test_collection.py index aeba8fee1..b5447347f 100644 --- a/test/test_collection.py +++ b/test/test_collection.py @@ -332,6 +332,9 @@ class TestCollection(IntegrationTest): mode="off") def test_reindex(self): + if not client_context.supports_reindex: + raise unittest.SkipTest( + "reindex is no longer supported by mongos 4.1+") db = self.db db.drop_collection("test") db.test.insert_one({"foo": "bar", "who": "what", "when": "how"}) diff --git a/test/test_session.py b/test/test_session.py index 59132da3e..6ffaf3f09 100644 --- a/test/test_session.py +++ b/test/test_session.py @@ -27,7 +27,6 @@ from pymongo.errors import (ConfigurationError, OperationFailure) from pymongo.monotonic import time as _time from pymongo.read_concern import ReadConcern -from pymongo.write_concern import WriteConcern from test import IntegrationTest, client_context, db_user, db_pwd, unittest, SkipTest from test.utils import ignore_deprecations, rs_or_single_client, EventListener @@ -321,12 +320,15 @@ class TestSession(IntegrationTest): (coll.count, [], {}), (coll.count_documents, [{}], {}), (coll.inline_map_reduce, ['function() {}', 'function() {}'], {}), - (coll.reindex, [], {}), (coll.list_indexes, [], {}), (coll.index_information, [], {}), (coll.options, [], {}), (coll.aggregate, [[]], {}), ]) + + if client_context.supports_reindex: + ops.append((coll.reindex, [], {})) + self._test_ops(client, *ops) @client_context.require_no_mongos @@ -922,8 +924,10 @@ class TestCausalConsistency(unittest.TestCase): lambda coll, session: coll.drop_index("foo_1", session=session)) self._test_writes( lambda coll, session: coll.drop_indexes(session=session)) - self._test_writes( - lambda coll, session: coll.reindex(session=session)) + + if client_context.supports_reindex: + self._test_writes( + lambda coll, session: coll.reindex(session=session)) def _test_no_read_concern(self, op): coll = self.client.pymongo_test.test @@ -977,8 +981,6 @@ class TestCausalConsistency(unittest.TestCase): lambda coll, session: coll.drop_index("foo_1", session=session)) self._test_no_read_concern( lambda coll, session: coll.drop_indexes(session=session)) - self._test_no_read_concern( - lambda coll, session: coll.reindex(session=session)) self._test_no_read_concern( lambda coll, session: list( coll.aggregate([{"$out": "aggout"}], session=session))) @@ -993,6 +995,10 @@ class TestCausalConsistency(unittest.TestCase): self._test_no_read_concern( lambda coll, session: coll.find({}, session=session).explain()) + if client_context.supports_reindex: + self._test_no_read_concern( + lambda coll, session: coll.reindex(session=session)) + @client_context.require_no_standalone def test_get_more_does_not_include_read_concern(self): coll = self.client.pymongo_test.test