Skip to content

Commit de89b23

Browse files
committed
Add test for nested sessions.
1 parent e090035 commit de89b23

File tree

2 files changed

+24
-4
lines changed

2 files changed

+24
-4
lines changed

test/asynchronous/test_session.py

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -394,12 +394,22 @@ async def test_cursor_clone(self):
394394
await cursor.close()
395395
await clone.close()
396396

397+
async def test_bind_session(self):
398+
coll = self.client.pymongo_test.collection
399+
397400
# Explicit session via context variable.
398401
async with self.client.start_session(bind=True) as s:
399402
cursor = coll.find()
400403
self.assertTrue(cursor.session is s)
401-
clone = cursor.clone()
402-
self.assertTrue(clone.session is s)
404+
405+
# Nested sessions.
406+
session1 = self.client.start_session(bind=True)
407+
with session1:
408+
session2 = self.client.start_session(bind=True)
409+
with session2:
410+
coll.find_one() # uses session2
411+
coll.find_one() # uses session1
412+
coll.find_one() # uses implicit session
403413

404414
async def test_cursor(self):
405415
listener = self.listener

test/test_session.py

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -394,12 +394,22 @@ def test_cursor_clone(self):
394394
cursor.close()
395395
clone.close()
396396

397+
def test_bind_session(self):
398+
coll = self.client.pymongo_test.collection
399+
397400
# Explicit session via context variable.
398401
with self.client.start_session(bind=True) as s:
399402
cursor = coll.find()
400403
self.assertTrue(cursor.session is s)
401-
clone = cursor.clone()
402-
self.assertTrue(clone.session is s)
404+
405+
# Nested sessions.
406+
session1 = self.client.start_session(bind=True)
407+
with session1:
408+
session2 = self.client.start_session(bind=True)
409+
with session2:
410+
coll.find_one() # uses session2
411+
coll.find_one() # uses session1
412+
coll.find_one() # uses implicit session
403413

404414
def test_cursor(self):
405415
listener = self.listener

0 commit comments

Comments
 (0)