99
1010
1111@pytest .fixture
12- def receptor_config (unused_tcp_port ):
13- config = dict ()
14- config .setdefault ('server' , {})['port' ] = unused_tcp_port
15- return ReceptorConfig (cmdline_args = config )
16-
12+ def receptor_config (unused_tcp_port , tmpdir , type = "node" ):
13+ return ReceptorConfig (['--data-dir' , tmpdir .strpath , type , '--listen-port' , str (unused_tcp_port )])
14+
1715
1816@pytest .fixture
1917def receptor_service (receptor_config ):
2018 return Receptor (config = receptor_config , node_id = 'A' )
2119
2220
2321@pytest .fixture
24- def receptor_service_factory (unused_tcp_port_factory ):
25- def _receptor_service (node_name , peer_ports = []):
26- config = dict ()
27- config .setdefault ('server' , {})['port' ] = unused_tcp_port_factory ()
28- config ['peers' ] = {'127.0.0.1:{}' .format (p ): '' for p in peer_ports }
29- receptor_config = ReceptorConfig (cmdline_args = config )
30- return Receptor (config = receptor_config , node_id = node_name )
22+ def receptor_service_factory (unused_tcp_port_factory , tmpdir ):
23+ def _receptor_service (node_name , peer_ports = [], type = "node" ):
24+ peers = {'127.0.0.1:{}' .format (p ): '' for p in peer_ports }
25+ peer_config = []
26+ for peer in peers :
27+ peer_config .extend (['--peer' , peer ])
28+ base_config = ['--node-id' , node_name , '--data-dir' , tmpdir .strpath , type , '--listen-port' , str (unused_tcp_port_factory ())]
29+ base_config .extend (peer_config )
30+ receptor_config = ReceptorConfig (base_config )
31+ return Receptor (receptor_config )
3132 return _receptor_service
3233
3334
3435async def connect_port (receptor_obj ):
3536 n = 5
3637 while n :
3738 sock = socket .socket (socket .AF_INET , socket .SOCK_STREAM )
38- result = sock .connect_ex (('127.0.0.1' ,receptor_obj .config .server . port ))
39+ result = sock .connect_ex (('127.0.0.1' ,receptor_obj .config .node_listen_port ))
3940 if result != 0 :
4041 await asyncio .sleep (1 )
4142 n = n - 1
@@ -51,15 +52,15 @@ async def wait_for_time(seconds):
5152@patch .object (receptor .protocol .BasicProtocol , 'connection_made' )
5253def test_main_node (mock_connection_made , event_loop , receptor_service ):
5354 event_loop .call_soon (event_loop .create_task , connect_port (receptor_service ))
54- mainloop (receptor = receptor_service , loop = event_loop )
55+ mainloop (receptor = receptor_service , ping_interval = - 1 , loop = event_loop )
5556 mock_connection_made .assert_called_once ()
5657
5758
5859def test_peering (event_loop , receptor_service_factory ):
59- r1 = receptor_service_factory ('A' )
60- r2 = receptor_service_factory ('B' , peer_ports = [r1 .config .server . port ])
61- mainloop (receptor = r1 , loop = event_loop , skip_run = True )
62- mainloop (receptor = r2 , loop = event_loop , skip_run = True )
60+ r1 = receptor_service_factory ('A' , type = "controller" )
61+ r2 = receptor_service_factory ('B' , peer_ports = [r1 .config .node_listen_port ])
62+ mainloop (receptor = r1 , ping_interval = - 1 , loop = event_loop , skip_run = True )
63+ mainloop (receptor = r2 , ping_interval = - 1 , loop = event_loop , skip_run = True )
6364 event_loop .run_until_complete (wait_for_time (10 ))
6465 assert r1 .router .node_is_known ('B' )
6566 assert r2 .router .node_is_known ('A' )
0 commit comments