@@ -38,32 +38,38 @@ async def client(
3838 transport_options : TransportOptions ,
3939 no_logging_error : NoErrors ,
4040) -> AsyncGenerator [Client , None ]:
41+ binding = None
4142 try :
42- async with serve (server .serve , "127.0.0.1" ) as binding :
43- sockets = list (binding .sockets )
44- assert len (sockets ) == 1 , "Too many sockets!"
45- socket = sockets [0 ]
43+ binding = await serve (server .serve , "127.0.0.1" )
44+ sockets = list (binding .sockets )
45+ assert len (sockets ) == 1 , "Too many sockets!"
46+ socket = sockets [0 ]
4647
47- async def websocket_uri_factory () -> UriAndMetadata [None ]:
48- return {
49- "uri" : "ws://%s:%d" % socket .getsockname (),
50- "metadata" : None ,
51- }
48+ async def websocket_uri_factory () -> UriAndMetadata [None ]:
49+ return {
50+ "uri" : "ws://%s:%d" % socket .getsockname (),
51+ "metadata" : None ,
52+ }
53+
54+ client : Client [Literal [None ]] = Client [None ](
55+ uri_and_metadata_factory = websocket_uri_factory ,
56+ client_id = "test_client" ,
57+ server_id = "test_server" ,
58+ transport_options = transport_options ,
59+ )
60+ try :
61+ yield client
62+ finally :
63+ logging .debug ("Start closing test client : %s" , "test_client" )
64+ await client .close ()
5265
53- client : Client [Literal [None ]] = Client [None ](
54- uri_and_metadata_factory = websocket_uri_factory ,
55- client_id = "test_client" ,
56- server_id = "test_server" ,
57- transport_options = transport_options ,
58- )
59- try :
60- yield client
61- finally :
62- logging .debug ("Start closing test client : %s" , "test_client" )
63- await client .close ()
6466 finally :
6567 await asyncio .sleep (1 )
6668 logging .debug ("Start closing test server" )
69+ if binding :
70+ binding .close ()
6771 await server .close ()
72+ if binding :
73+ await binding .wait_closed ()
6874 # Server should close normally
6975 no_logging_error ()
0 commit comments