@@ -651,11 +651,16 @@ def test_core(self):
651
651
self .client .pymongo_test .command ('doesntexist' , session = sess )
652
652
except :
653
653
pass
654
- # operationTime was updated from a failed command
655
- self .assertNotEqual (op_time , sess .operation_time )
656
654
failed = self .listener .results ['failed' ][0 ]
657
- self .assertEqual (
658
- sess .operation_time , failed .failure .get ('operationTime' ))
655
+ failed_op_time = failed .failure .get ('operationTime' )
656
+ # Some older builds of MongoDB 3.5 / 3.6 return None for
657
+ # operationTime when a command fails. Make sure we don't
658
+ # change operation_time to None.
659
+ if failed_op_time is None :
660
+ self .assertIsNotNone (sess .operation_time )
661
+ else :
662
+ self .assertEqual (
663
+ sess .operation_time , failed_op_time )
659
664
660
665
with self .client .start_session () as sess2 :
661
666
self .assertIsNone (sess2 .cluster_time )
@@ -715,9 +720,12 @@ def test_reads(self):
715
720
lambda coll , session : coll .inline_map_reduce (
716
721
'function() {}' , 'function() {}' , session = session ))
717
722
if not client_context .is_mongos :
723
+ def scan (coll , session ):
724
+ cursors = coll .parallel_scan (1 , session = session )
725
+ for cur in cursors :
726
+ list (cur )
718
727
self ._test_reads (
719
- lambda coll , session : list (
720
- coll .parallel_scan (1 , session = session )))
728
+ lambda coll , session : scan (coll , session = session ))
721
729
722
730
self .assertRaises (
723
731
ConfigurationError ,
0 commit comments