You can use generated stubs to test your services. But it is not needed to setup connectivity over network interfaces. grpclib provides ability to use real client-side code, real server-side code, and real h2/gRPC protocol to test your services, with all the data sent in-memory.
- class grpclib.testing.ChannelFor(services: Collection[IServable], codec: Optional[CodecBase] = None, status_details_codec: Optional[StatusDetailsCodecBase] = None)
class Greeter(GreeterBase): ... greeter = Greeter() async with ChannelFor([greeter]) as channel: stub = GreeterStub(channel) response = await stub.SayHello(HelloRequest(name='Dr. Strange')) assert response.message == 'Hello, Dr. Strange!'
services – list of services you want to test
codec – instance of a codec to encode and decode messages, if omitted
ProtoCodecis used by default
status_details_codec – instance of a status details codec to encode and decode error details in a trailing metadata, if omitted
ProtoStatusDetailsCodecis used by default