def __init__(self, *, loop, client_conn=None, send_type=None, recv_type=None, path='/foo/bar', codec=ProtoCodec(), cardinality=Cardinality.UNARY_UNARY, connect_time=None, timeout=None, deadline=None, metadata=None): self.client_conn = client_conn or ClientConn(loop=loop) channel = client.Channel(port=-1, loop=loop, codec=codec) self.client_stream = channel.request( path, cardinality, send_type, recv_type, timeout=timeout, deadline=deadline, metadata=metadata, ) self.client_stream._channel = ChannelStub( self.client_conn.client_proto, connect_time=connect_time)
async def __aenter__(self): host = '127.0.0.1' with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: s.bind(('127.0.0.1', 0)) _, port = s.getsockname() handler = self.handler_cls() self.server = server.Server([handler], loop=self.loop, codec=self.codec) await self.server.start(host, port) self.channel = client.Channel(host, port, loop=self.loop, codec=self.codec) stub = self.stub_cls(self.channel) return handler, stub