MCPcopy Create free account
hub / github.com/mongodb/mongo-python-driver / test_nested_session_binding

Method test_nested_session_binding

test/test_session.py:874–923  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

872 self.assertRaises(TypeError, lambda: copy.copy(s))
873
874 def test_nested_session_binding(self):
875 coll = self.client.pymongo_test.test
876 coll.insert_one({"x": 1})
877
878 session1 = self.client.start_session()
879 session2 = self.client.start_session()
880 session1._materialize()
881 session2._materialize()
882 try:
883 self.listener.reset()
884 # Uses implicit session
885 coll.find_one()
886 implicit_lsid = self.listener.started_events[0].command.get("lsid")
887 self.assertIsNotNone(implicit_lsid)
888 self.assertNotEqual(implicit_lsid, session1.session_id)
889 self.assertNotEqual(implicit_lsid, session2.session_id)
890
891 with session1.bind(end_session=False):
892 self.listener.reset()
893 # Uses bound session1
894 coll.find_one()
895 session1_lsid = self.listener.started_events[0].command.get("lsid")
896 self.assertEqual(session1_lsid, session1.session_id)
897
898 with session2.bind(end_session=False):
899 self.listener.reset()
900 # Uses bound session2
901 coll.find_one()
902 session2_lsid = self.listener.started_events[0].command.get("lsid")
903 self.assertEqual(session2_lsid, session2.session_id)
904 self.assertNotEqual(session2_lsid, session1.session_id)
905
906 self.listener.reset()
907 # Use bound session1 again
908 coll.find_one()
909 session1_lsid = self.listener.started_events[0].command.get("lsid")
910 self.assertEqual(session1_lsid, session1.session_id)
911 self.assertNotEqual(session1_lsid, session2.session_id)
912
913 self.listener.reset()
914 # Uses implicit session
915 coll.find_one()
916 implicit_lsid = self.listener.started_events[0].command.get("lsid")
917 self.assertIsNotNone(implicit_lsid)
918 self.assertNotEqual(implicit_lsid, session1.session_id)
919 self.assertNotEqual(implicit_lsid, session2.session_id)
920
921 finally:
922 session1.end_session()
923 session2.end_session()
924
925 def test_session_binding_end_session(self):
926 coll = self.client.pymongo_test.test

Callers

nothing calls this directly

Calls 8

insert_oneMethod · 0.45
start_sessionMethod · 0.45
_materializeMethod · 0.45
resetMethod · 0.45
find_oneMethod · 0.45
getMethod · 0.45
bindMethod · 0.45
end_sessionMethod · 0.45

Tested by

no test coverage detected