1- import asyncio
21import logging
32from typing import AsyncGenerator , Literal
43
@@ -38,37 +37,31 @@ async def client(
3837 transport_options : TransportOptions ,
3938 no_logging_error : NoErrors ,
4039) -> AsyncGenerator [Client , None ]:
41- binding = None
4240 try :
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 ]
41+ async with serve (server .serve , "127.0.0.1" ) as binding :
42+ sockets = list (binding .sockets )
43+ assert len (sockets ) == 1 , "Too many sockets!"
44+ socket = sockets [0 ]
4745
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 ()
46+ async def websocket_uri_factory () -> UriAndMetadata [None ]:
47+ return {
48+ "uri" : "ws://%s:%d" % socket .getsockname (),
49+ "metadata" : None ,
50+ }
6551
52+ client : Client [Literal [None ]] = Client [None ](
53+ uri_and_metadata_factory = websocket_uri_factory ,
54+ client_id = "test_client" ,
55+ server_id = "test_server" ,
56+ transport_options = transport_options ,
57+ )
58+ try :
59+ yield client
60+ finally :
61+ logging .debug ("Start closing test client : %s" , "test_client" )
62+ await client .close ()
6663 finally :
6764 logging .debug ("Start closing test server" )
68- if binding :
69- binding .close ()
7065 await server .close ()
71- if binding :
72- await binding .wait_closed ()
7366 # Server should close normally
74- no_logging_error ()
67+ no_logging_error ()
0 commit comments