1414 to_hex ,
1515)
1616
17+ from p2p .events import (
18+ PeerCountRequest ,
19+ PeerCountResponse ,
20+ )
21+
1722from trinity .utils .version import construct_trinity_client_identifier
1823
1924
@@ -35,15 +40,6 @@ def build_request(method, params=[]):
3540 return json .dumps (request ).encode ()
3641
3742
38- class MockPeerPool :
39-
40- def __init__ (self , peer_count = 0 ):
41- self .peer_count = peer_count
42-
43- def __len__ (self ):
44- return self .peer_count
45-
46-
4743def id_from_rpc_request (param ):
4844 if isinstance (param , bytes ):
4945 request = json .loads (param .decode ())
@@ -68,6 +64,7 @@ async def get_ipc_response(
6864 jsonrpc_ipc_pipe_path ,
6965 request_msg ,
7066 event_loop ):
67+
7168 assert wait_for (jsonrpc_ipc_pipe_path ), "IPC server did not successfully start with IPC file"
7269
7370 reader , writer = await asyncio .open_unix_connection (str (jsonrpc_ipc_pipe_path ), loop = event_loop )
@@ -399,18 +396,27 @@ async def test_eth_call_with_contract_on_ipc(
399396 assert result == expected
400397
401398
399+ def mock_peer_count (count ):
400+ async def mock_event_bus_interaction (bus ):
401+ async for req in bus .stream (PeerCountRequest ):
402+ bus .broadcast (PeerCountResponse (count ), req .broadcast_config ())
403+ break
404+
405+ return mock_event_bus_interaction
406+
407+
402408@pytest .mark .asyncio
403409@pytest .mark .parametrize (
404- 'request_msg, mock_peer_pool , expected' ,
410+ 'request_msg, event_bus_setup_fn , expected' ,
405411 (
406412 (
407413 build_request ('net_peerCount' ),
408- MockPeerPool ( peer_count = 1 ),
414+ mock_peer_count ( 1 ),
409415 {'result' : '0x1' , 'id' : 3 , 'jsonrpc' : '2.0' },
410416 ),
411417 (
412418 build_request ('net_peerCount' ),
413- MockPeerPool ( peer_count = 0 ),
419+ mock_peer_count ( 0 ),
414420 {'result' : '0x0' , 'id' : 3 , 'jsonrpc' : '2.0' },
415421 ),
416422 ),
@@ -422,10 +428,17 @@ async def test_peer_pool_over_ipc(
422428 monkeypatch ,
423429 jsonrpc_ipc_pipe_path ,
424430 request_msg ,
425- mock_peer_pool ,
431+ event_bus_setup_fn ,
432+ event_bus ,
426433 expected ,
427434 event_loop ,
428435 ipc_server ):
429- monkeypatch .setattr (ipc_server .rpc .modules ['net' ], '_peer_pool' , mock_peer_pool )
430- result = await get_ipc_response (jsonrpc_ipc_pipe_path , request_msg , event_loop )
436+
437+ asyncio .ensure_future (event_bus_setup_fn (event_bus ))
438+
439+ result = await get_ipc_response (
440+ jsonrpc_ipc_pipe_path ,
441+ request_msg ,
442+ event_loop
443+ )
431444 assert result == expected
0 commit comments