Skip to content

Commit d847e01

Browse files
committed
PYTHON-1851 Test inline mapReduce fails in a causally consistent session on 4.2
1 parent 8dbf41a commit d847e01

File tree

1 file changed

+15
-4
lines changed

1 file changed

+15
-4
lines changed

test/test_session.py

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -816,14 +816,18 @@ def test_core(self):
816816
self.assertEqual(sess.cluster_time, sess2.cluster_time)
817817
self.assertEqual(sess.operation_time, sess2.operation_time)
818818

819-
def _test_reads(self, op):
819+
def _test_reads(self, op, exception=None):
820820
coll = self.client.pymongo_test.test
821821
with self.client.start_session() as sess:
822822
coll.find_one({}, session=sess)
823823
operation_time = sess.operation_time
824824
self.assertIsNotNone(operation_time)
825825
self.listener.results.clear()
826-
op(coll, sess)
826+
if exception:
827+
with self.assertRaises(exception):
828+
op(coll, sess)
829+
else:
830+
op(coll, sess)
827831
act = self.listener.results['started'][0].command.get(
828832
'readConcern', {}).get('afterClusterTime')
829833
self.assertEqual(operation_time, act)
@@ -844,12 +848,19 @@ def test_reads(self):
844848
lambda coll, session: coll.count_documents({}, session=session))
845849
self._test_reads(
846850
lambda coll, session: coll.distinct('foo', session=session))
851+
852+
# SERVER-40938 removed support for casually consistent mapReduce.
853+
map_reduce_exc = None
854+
if client_context.version.at_least(4, 1, 12):
855+
map_reduce_exc = OperationFailure
847856
self._test_reads(
848857
lambda coll, session: coll.map_reduce(
849-
'function() {}', 'function() {}', 'inline', session=session))
858+
'function() {}', 'function() {}', 'inline', session=session),
859+
exception=map_reduce_exc)
850860
self._test_reads(
851861
lambda coll, session: coll.inline_map_reduce(
852-
'function() {}', 'function() {}', session=session))
862+
'function() {}', 'function() {}', session=session),
863+
exception=map_reduce_exc)
853864
if (not client_context.is_mongos and
854865
not client_context.version.at_least(4, 1, 0)):
855866
def scan(coll, session):

0 commit comments

Comments
 (0)