Skip to content

Commit be50f30

Browse files
committed
Fix test flakiness on systems with low monotonic clock resolution
👀️🪟️
1 parent 3ded645 commit be50f30

File tree

2 files changed

+16
-0
lines changed

2 files changed

+16
-0
lines changed

tests/unit/async_/io/test_neo4j_pool.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import contextlib
1818
import inspect
1919
import sys
20+
import time
2021
from copy import deepcopy
2122

2223
import pytest
@@ -32,6 +33,7 @@
3233
AsyncBolt,
3334
AsyncNeo4jPool,
3435
)
36+
from neo4j._async_compat import async_sleep
3537
from neo4j._async_compat.util import AsyncUtil
3638
from neo4j._conf import (
3739
RoutingConfig,
@@ -49,6 +51,8 @@
4951
from ...._async_compat import mark_async_test
5052

5153

54+
MONOTONIC_TIME_RESOLUTION = time.get_clock_info("monotonic").resolution
55+
5256
ROUTER1_ADDRESS = ResolvedAddress(("1.2.3.1", 9000), host_name="host")
5357
ROUTER2_ADDRESS = ResolvedAddress(("1.2.3.1", 9001), host_name="host")
5458
ROUTER3_ADDRESS = ResolvedAddress(("1.2.3.1", 9002), host_name="host")
@@ -197,6 +201,8 @@ async def test_acquires_new_routing_table_if_stale(
197201
old_value = pool.routing_tables[db.name].last_updated_time
198202
pool.routing_tables[db.name].ttl = 0
199203

204+
await async_sleep(MONOTONIC_TIME_RESOLUTION * 2)
205+
200206
cx = await pool.acquire(READ_ACCESS, 30, db, None, None, None)
201207
await pool.release(cx)
202208
assert pool.routing_tables[db.name].last_updated_time > old_value
@@ -218,6 +224,8 @@ async def test_removes_old_routing_table(opener):
218224
db2_rt = pool.routing_tables[TEST_DB2.name]
219225
db2_rt.ttl = -RoutingConfig.routing_table_purge_delay
220226

227+
await async_sleep(MONOTONIC_TIME_RESOLUTION * 2)
228+
221229
cx = await pool.acquire(READ_ACCESS, 30, TEST_DB1, None, None, None)
222230
await pool.release(cx)
223231
assert pool.routing_tables[TEST_DB1.name].last_updated_time > old_value

tests/unit/sync/io/test_neo4j_pool.py

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)