Skip to content

Commit 10406de

Browse files
committed
Address review
1 parent c5bf1ab commit 10406de

File tree

2 files changed

+14
-10
lines changed

2 files changed

+14
-10
lines changed

test/asynchronous/test_discovery_and_monitoring.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727

2828
from pymongo.asynchronous.pool import AsyncConnection
2929
from pymongo.operations import _Op
30-
from pymongo.server_selectors import readable_server_selector
30+
from pymongo.server_selectors import writable_server_selector
3131

3232
sys.path[0:0] = [""]
3333

@@ -387,24 +387,25 @@ async def test_connection_close_does_not_block_other_operations(self):
387387
minPoolSize=10,
388388
)
389389
server = await (await client._get_topology()).select_server(
390-
readable_server_selector, _Op.TEST
390+
writable_server_selector, _Op.TEST
391391
)
392392
await async_wait_until(
393393
lambda: len(server._pool.conns) == 10,
394394
"pool initialized with 10 connections",
395395
)
396396

397397
await client.db.test.insert_one({"x": 1})
398-
close_delay = 0.05
398+
close_delay = 0.1
399399
latencies = []
400+
should_exit = []
400401

401402
async def run_task():
402403
while True:
403404
start_time = time.monotonic()
404405
await client.db.test.find_one({})
405406
elapsed = time.monotonic() - start_time
406407
latencies.append(elapsed)
407-
if elapsed >= close_delay:
408+
if should_exit:
408409
break
409410
await asyncio.sleep(0.001)
410411

@@ -432,8 +433,9 @@ async def mock_close(self, reason):
432433
await listener.async_wait_for_event(monitoring.ServerHeartbeatFailedEvent, 1)
433434
# Wait until all idle connections are closed to simulate real-world conditions
434435
await listener.async_wait_for_event(monitoring.ConnectionClosedEvent, 10)
436+
should_exit.append(True)
435437
# No operation latency should not significantly exceed close_delay
436-
self.assertLessEqual(max(latencies), close_delay * 2.0)
438+
self.assertLessEqual(max(latencies), close_delay * 5.0)
437439
finally:
438440
AsyncConnection.close_conn = original_close
439441
await task.join()

test/test_discovery_and_monitoring.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
from test.helpers import ConcurrentRunner
2727

2828
from pymongo.operations import _Op
29-
from pymongo.server_selectors import readable_server_selector
29+
from pymongo.server_selectors import writable_server_selector
3030
from pymongo.synchronous.pool import Connection
3131

3232
sys.path[0:0] = [""]
@@ -386,23 +386,24 @@ def test_connection_close_does_not_block_other_operations(self):
386386
heartbeatFrequencyMS=500,
387387
minPoolSize=10,
388388
)
389-
server = (client._get_topology()).select_server(readable_server_selector, _Op.TEST)
389+
server = (client._get_topology()).select_server(writable_server_selector, _Op.TEST)
390390
wait_until(
391391
lambda: len(server._pool.conns) == 10,
392392
"pool initialized with 10 connections",
393393
)
394394

395395
client.db.test.insert_one({"x": 1})
396-
close_delay = 0.05
396+
close_delay = 0.1
397397
latencies = []
398+
should_exit = []
398399

399400
def run_task():
400401
while True:
401402
start_time = time.monotonic()
402403
client.db.test.find_one({})
403404
elapsed = time.monotonic() - start_time
404405
latencies.append(elapsed)
405-
if elapsed >= close_delay:
406+
if should_exit:
406407
break
407408
time.sleep(0.001)
408409

@@ -430,8 +431,9 @@ def mock_close(self, reason):
430431
listener.wait_for_event(monitoring.ServerHeartbeatFailedEvent, 1)
431432
# Wait until all idle connections are closed to simulate real-world conditions
432433
listener.wait_for_event(monitoring.ConnectionClosedEvent, 10)
434+
should_exit.append(True)
433435
# No operation latency should not significantly exceed close_delay
434-
self.assertLessEqual(max(latencies), close_delay * 2.0)
436+
self.assertLessEqual(max(latencies), close_delay * 5.0)
435437
finally:
436438
Connection.close_conn = original_close
437439
task.join()

0 commit comments

Comments
 (0)