17
17
import contextlib
18
18
import inspect
19
19
import sys
20
+ import time
20
21
from copy import deepcopy
21
22
22
23
import pytest
32
33
AsyncBolt ,
33
34
AsyncNeo4jPool ,
34
35
)
36
+ from neo4j ._async_compat import async_sleep
35
37
from neo4j ._async_compat .util import AsyncUtil
36
38
from neo4j ._conf import (
37
39
RoutingConfig ,
49
51
from ...._async_compat import mark_async_test
50
52
51
53
54
+ MONOTONIC_TIME_RESOLUTION = time .get_clock_info ("monotonic" ).resolution
55
+
52
56
ROUTER1_ADDRESS = ResolvedAddress (("1.2.3.1" , 9000 ), host_name = "host" )
53
57
ROUTER2_ADDRESS = ResolvedAddress (("1.2.3.1" , 9001 ), host_name = "host" )
54
58
ROUTER3_ADDRESS = ResolvedAddress (("1.2.3.1" , 9002 ), host_name = "host" )
@@ -197,6 +201,8 @@ async def test_acquires_new_routing_table_if_stale(
197
201
old_value = pool .routing_tables [db .name ].last_updated_time
198
202
pool .routing_tables [db .name ].ttl = 0
199
203
204
+ await async_sleep (MONOTONIC_TIME_RESOLUTION * 2 )
205
+
200
206
cx = await pool .acquire (READ_ACCESS , 30 , db , None , None , None )
201
207
await pool .release (cx )
202
208
assert pool .routing_tables [db .name ].last_updated_time > old_value
@@ -218,6 +224,8 @@ async def test_removes_old_routing_table(opener):
218
224
db2_rt = pool .routing_tables [TEST_DB2 .name ]
219
225
db2_rt .ttl = - RoutingConfig .routing_table_purge_delay
220
226
227
+ await async_sleep (MONOTONIC_TIME_RESOLUTION * 2 )
228
+
221
229
cx = await pool .acquire (READ_ACCESS , 30 , TEST_DB1 , None , None , None )
222
230
await pool .release (cx )
223
231
assert pool .routing_tables [TEST_DB1 .name ].last_updated_time > old_value
0 commit comments