PYTHON-5409 Make test_implicit_sessions_checkout less flaky (#2366)

This commit is contained in:
Shane Harvey 2025-06-09 11:26:07 -07:00 committed by GitHub
parent 24e9da6a09
commit f50ef65dd5
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 14 additions and 12 deletions

View File

@ -194,10 +194,11 @@ class TestSession(AsyncIntegrationTest):
# successful connection checkout" test from Driver Sessions Spec.
succeeded = False
lsid_set = set()
failures = 0
for _ in range(5):
listener = OvertCommandListener()
client = await self.async_rs_or_single_client(event_listeners=[listener], maxPoolSize=1)
listener = OvertCommandListener()
client = await self.async_rs_or_single_client(event_listeners=[listener], maxPoolSize=1)
# Retry up to 10 times because there is a known race that can cause multiple
# sessions to be used: connection check in happens before session check in
for _ in range(10):
cursor = client.db.test.find({})
ops: List[Tuple[Callable, List[Any]]] = [
(client.db.test.find_one, [{"_id": 1}]),
@ -240,9 +241,9 @@ class TestSession(AsyncIntegrationTest):
if i.command.get("lsid"):
lsid_set.add(i.command.get("lsid")["id"])
if len(lsid_set) == 1:
# Break on first success.
succeeded = True
else:
failures += 1
break
self.assertTrue(succeeded, lsid_set)
async def test_pool_lifo(self):

View File

@ -194,10 +194,11 @@ class TestSession(IntegrationTest):
# successful connection checkout" test from Driver Sessions Spec.
succeeded = False
lsid_set = set()
failures = 0
for _ in range(5):
listener = OvertCommandListener()
client = self.rs_or_single_client(event_listeners=[listener], maxPoolSize=1)
listener = OvertCommandListener()
client = self.rs_or_single_client(event_listeners=[listener], maxPoolSize=1)
# Retry up to 10 times because there is a known race that can cause multiple
# sessions to be used: connection check in happens before session check in
for _ in range(10):
cursor = client.db.test.find({})
ops: List[Tuple[Callable, List[Any]]] = [
(client.db.test.find_one, [{"_id": 1}]),
@ -240,9 +241,9 @@ class TestSession(IntegrationTest):
if i.command.get("lsid"):
lsid_set.add(i.command.get("lsid")["id"])
if len(lsid_set) == 1:
# Break on first success.
succeeded = True
else:
failures += 1
break
self.assertTrue(succeeded, lsid_set)
def test_pool_lifo(self):