Skip to content

Commit 354a96a

Browse files
author
Neil Booth
committed
Fix more timing issues on Mac and Windows
1 parent 4268d63 commit 354a96a

File tree

4 files changed

+16
-13
lines changed

4 files changed

+16
-13
lines changed

aiorpcx/websocket.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,8 @@ async def __aenter__(self):
124124

125125
async def __aexit__(self, exc_type, exc_value, traceback):
126126
await self.transport.close()
127-
assert self.process_messages_task.done()
127+
# Disabled this as loop might not have processed the event, and don't want to sleep here
128+
# assert self.process_messages_task.done()
128129

129130

130131
def serve_ws(session_factory, *args, **kwargs):

tests/test_curio.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ async def test_tg_join_no_arg():
134134

135135
@pytest.mark.asyncio
136136
async def test_tg_cm_no_arg():
137-
tasks = [await spawn(sleep, x/200) for x in range(5, 0, -1)]
137+
tasks = [await spawn(sleep, x) for x in (0.1, 0.01, -1)]
138138
async with TaskGroup(tasks) as t:
139139
pass
140140
assert all(task.done() for task in tasks)
@@ -154,7 +154,7 @@ async def test_tg_cm_all():
154154

155155
@pytest.mark.asyncio
156156
async def test_tg_cm_any():
157-
tasks = [await spawn(sleep, x/200) for x in (0.1, 0.01, -1)]
157+
tasks = [await spawn(sleep, x) for x in (0.1, 0.05, -1)]
158158
async with TaskGroup(tasks, wait=any) as t:
159159
pass
160160
assert all(task.done() for task in tasks)
@@ -733,7 +733,7 @@ async def test_ignore_after_no_expire():
733733
async def t1(*values):
734734
return await return_after_sleep(1 + sum(values), 0.001)
735735

736-
assert await ignore_after(0.02, t1, 1) == 2
736+
assert await ignore_after(0.1, t1, 1) == 2
737737
await sleep(0.002)
738738

739739

tests/test_jsonrpc.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -831,7 +831,7 @@ async def receive_request():
831831
requests = connection.receive_message(message)
832832
assert not requests
833833

834-
async with timeout_after(0.01):
834+
async with timeout_after(0.2):
835835
async with TaskGroup() as group:
836836
await group.spawn(receive_request)
837837
await group.spawn(send_request)
@@ -915,7 +915,7 @@ async def receive_request():
915915
for req, request in zip(batch, requests):
916916
assert req == request
917917

918-
async with timeout_after(0.01):
918+
async with timeout_after(0.2):
919919
async with TaskGroup() as group:
920920
await group.spawn(receive_request)
921921
await group.spawn(send_request)
@@ -988,7 +988,7 @@ async def receive_request():
988988
requests = connection.receive_message(message)
989989
assert requests == [req]
990990

991-
async with timeout_after(0.01):
991+
async with timeout_after(0.2):
992992
async with TaskGroup() as group:
993993
await group.spawn(receive_request)
994994
await group.spawn(send_request)

tests/test_session.py

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ def __init__(self, *args, **kwargs):
3636

3737
@classmethod
3838
async def current_server(self):
39-
await sleep(0)
39+
await sleep(0.05)
4040
return self.sessions[0]
4141

4242
async def connection_lost(self):
@@ -190,12 +190,13 @@ async def test_error_base_cost(self, server_port):
190190
server_session = await MyServerSession.current_server()
191191
server_session.error_base_cost = server_session.cost_hard_limit * 1.1
192192
await session._send_message(b'')
193-
await sleep(0.01)
193+
await sleep(0.05)
194194
assert server_session.errors == 1
195195
assert server_session.cost > server_session.cost_hard_limit
196196
# Check next request raises and cuts us off
197197
with pytest.raises(RPCError):
198198
await session.send_request('echo', [23])
199+
await sleep(0.02)
199200
assert session.is_closing()
200201

201202
@pytest.mark.asyncio
@@ -207,7 +208,7 @@ async def test_RPCError_cost(self, server_port):
207208
with pytest.raises(RPCError):
208209
await session.send_request('costly_error', [1000])
209210
# It can trigger a cost recalc which refunds a tad
210-
epsilon = 0.1
211+
epsilon = 1
211212
assert server_session.cost > server_session.error_base_cost + 1000 - epsilon
212213

213214
@pytest.mark.asyncio
@@ -381,9 +382,9 @@ async def test_concurrency_decay(self, server_port):
381382
async with connect_rs('localhost', server_port) as session:
382383
session.cost_decay_per_sec = 100
383384
session.cost = 1000
384-
await sleep(0.01)
385+
await sleep(0.1)
385386
session.recalc_concurrency()
386-
assert 990 < session.cost < 999.1
387+
assert 970 < session.cost < 992
387388

388389
@pytest.mark.asyncio
389390
async def test_concurrency_hard_limit_0(self, server_port):
@@ -450,6 +451,7 @@ async def test_reply_and_disconnect_error(self, server_port):
450451
async with connect_rs('localhost', server_port) as session:
451452
with pytest.raises(RPCError) as e:
452453
assert await session.send_request('disconnect')
454+
await sleep(0.001)
453455
exc = e.value
454456
assert exc.code == 1 and exc.message == 'incompatible version'
455457
assert session.is_closing()
@@ -855,7 +857,7 @@ async def test_request_over_hard_limit(self, msg_server_port):
855857
server = await MessageServer.current_server()
856858
server.bump_cost(server.cost_hard_limit + 100)
857859
await session.send_message((b'version', b'abc'))
858-
await sleep(0.005)
860+
await sleep(0.05)
859861
assert session.is_closing()
860862

861863
@pytest.mark.asyncio

0 commit comments

Comments
 (0)