示例#1
0
    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)
示例#2
0
    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