Skip to content
This repository has been archived by the owner on Jul 1, 2021. It is now read-only.

Commit

Permalink
Get rid of sleeps
Browse files Browse the repository at this point in the history
  • Loading branch information
cburgdorf committed May 22, 2019
1 parent efedf94 commit ee44f6d
Show file tree
Hide file tree
Showing 5 changed files with 34 additions and 17 deletions.
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
"plyvel==1.0.5",
PYEVM_DEPENDENCY,
"web3==4.4.1",
"lahja@git+https://github.com/ethereum/lahja.git@5e7924748b90dd14874289cc0ca1ff75df8f733d",
"lahja@git+https://github.com/cburgdorf/lahja-1.git@5eb425362f660d1c44570f4b1d17fae470e24cf5", # noqa: E501
# "lahja==0.12.0",
"termcolor>=1.1.0,<2.0.0",
"uvloop==0.11.2;platform_system=='Linux' or platform_system=='Darwin' or platform_system=='FreeBSD'", # noqa: E501
Expand Down
3 changes: 1 addition & 2 deletions tests/core/integration_test_helpers.py
Original file line number Diff line number Diff line change
Expand Up @@ -188,8 +188,7 @@ async def run_peer_pool_event_server(event_bus, peer_pool, handler_type=None):
peer_pool.cancel_token
)
asyncio.ensure_future(event_server.run())
# Give event subscriptions a moment to propagate
await asyncio.sleep(0.01)

await event_server.events.started.wait()
return event_server

Expand Down
37 changes: 25 additions & 12 deletions tests/core/json-rpc/test_ipc.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,9 @@
to_bytes,
to_hex,
)
from lahja import (
BaseEvent,
)

from trinity.nodes.events import (
NetworkIdRequest,
Expand Down Expand Up @@ -85,10 +88,11 @@ def can_decode_json(potential):
async def get_ipc_response(
jsonrpc_ipc_pipe_path,
request_msg,
event_loop):
event_loop,
event_bus):

await event_bus.wait_until_all_connections_subscribed_to(BaseEvent)

# Give the event subscriptions a moment to propagate
await asyncio.sleep(0.01)
assert wait_for(jsonrpc_ipc_pipe_path), "IPC server did not successfully start with IPC file"

reader, writer = await asyncio.open_unix_connection(str(jsonrpc_ipc_pipe_path), loop=event_loop)
Expand Down Expand Up @@ -218,8 +222,9 @@ async def test_ipc_requests(
request_msg,
expected,
event_loop,
event_bus,
ipc_server):
result = await get_ipc_response(jsonrpc_ipc_pipe_path, request_msg, event_loop)
result = await get_ipc_response(jsonrpc_ipc_pipe_path, request_msg, event_loop, event_bus)
assert result == expected


Expand All @@ -234,7 +239,7 @@ async def test_network_id_ipc_request(
mock_request_response(NetworkIdRequest, NetworkIdResponse(1337))(event_bus))
request_msg = build_request('net_version')
expected = {'result': '1337', 'id': 3, 'jsonrpc': '2.0'}
result = await get_ipc_response(jsonrpc_ipc_pipe_path, request_msg, event_loop)
result = await get_ipc_response(jsonrpc_ipc_pipe_path, request_msg, event_loop, event_bus)
assert result == expected


Expand Down Expand Up @@ -324,8 +329,9 @@ async def test_estimate_gas_on_ipc(
request_msg,
expected,
event_loop,
event_bus,
ipc_server):
result = await get_ipc_response(jsonrpc_ipc_pipe_path, request_msg, event_loop)
result = await get_ipc_response(jsonrpc_ipc_pipe_path, request_msg, event_loop, event_bus)
assert result == expected


Expand All @@ -352,8 +358,9 @@ async def test_eth_call_on_ipc(
request_msg,
expected,
event_loop,
event_bus,
ipc_server):
result = await get_ipc_response(jsonrpc_ipc_pipe_path, request_msg, event_loop)
result = await get_ipc_response(jsonrpc_ipc_pipe_path, request_msg, event_loop, event_bus)
assert result == expected


Expand Down Expand Up @@ -426,6 +433,7 @@ async def test_eth_call_with_contract_on_ipc(
gas_price,
event_loop,
ipc_server,
event_bus,
expected):
function_selector = function_signature_to_4byte_selector(signature)
transaction = {
Expand All @@ -435,7 +443,7 @@ async def test_eth_call_with_contract_on_ipc(
'data': to_hex(function_selector),
}
request_msg = build_request('eth_call', params=[transaction, 'latest'])
result = await get_ipc_response(jsonrpc_ipc_pipe_path, request_msg, event_loop)
result = await get_ipc_response(jsonrpc_ipc_pipe_path, request_msg, event_loop, event_bus)
assert result == expected


Expand Down Expand Up @@ -472,7 +480,8 @@ async def test_peer_pool_over_ipc(
result = await get_ipc_response(
jsonrpc_ipc_pipe_path,
request_msg,
event_loop
event_loop,
event_bus,
)
assert result == expected

Expand Down Expand Up @@ -511,7 +520,8 @@ async def test_eth_over_ipc(
result = await get_ipc_response(
jsonrpc_ipc_pipe_path,
request_msg,
event_loop
event_loop,
event_bus,
)
assert result == expected

Expand Down Expand Up @@ -549,13 +559,15 @@ async def test_admin_addPeer_error_messages(
jsonrpc_ipc_pipe_path,
request_msg,
event_loop,
event_bus,
expected,
ipc_server):

result = await get_ipc_response(
jsonrpc_ipc_pipe_path,
request_msg,
event_loop
event_loop,
event_bus,
)
assert result == expected

Expand All @@ -577,7 +589,8 @@ async def test_admin_addPeer_fires_message(
result = await get_ipc_response(
jsonrpc_ipc_pipe_path,
request,
event_loop
event_loop,
event_bus
)
assert result == {'id': 3, 'jsonrpc': '2.0', 'result': None}

Expand Down
4 changes: 2 additions & 2 deletions tests/core/network-db/test_connection_tracker_server.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import asyncio
import pytest

from lahja import BroadcastConfig
from lahja import BroadcastConfig, BaseEvent

from p2p.tools.factories import NodeFactory

Expand Down Expand Up @@ -33,7 +33,7 @@ async def test_connection_tracker_server_and_client(event_loop, event_bus):
bus_tracker = ConnectionTrackerClient(event_bus, config=config)

# Give `bus_tracker` a moment to setup subscriptions
await asyncio.sleep(0.01)
await event_bus.wait_until_all_connections_subscribed_to(BaseEvent)
# ensure we can read from the tracker over the event bus
assert await bus_tracker.should_connect_to(remote_a) is False

Expand Down
5 changes: 5 additions & 0 deletions tests/core/p2p-proto/bcc/test_requests.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,9 @@
)

from trinity.constants import TO_NETWORKING_BROADCAST_CONFIG
from trinity.protocol.common.events import (
PeerPoolMessageEvent,
)
from trinity.protocol.bcc.commands import (
BeaconBlocks,
)
Expand Down Expand Up @@ -56,6 +59,8 @@ async def get_request_server_setup(request, event_loop, event_bus, chain_db):
event_bus, TO_NETWORKING_BROADCAST_CONFIG, bob.context.chain_db)
asyncio.ensure_future(bob_request_server.run())

await event_bus.wait_until_all_connections_subscribed_to(PeerPoolMessageEvent)

def finalizer():
event_loop.run_until_complete(bob_request_server.cancel())
event_loop.run_until_complete(event_server.cancel())
Expand Down

0 comments on commit ee44f6d

Please sign in to comment.