pytest-grpc
pytest-grpc copied to clipboard
How to add multiple serviers?
trafficstars
I have rewrite grpc_server function, It works, but not pretty.
@pytest.fixture(scope='module')
def grpc_add_to_server():
from repo_pb2_grpc import add_RepoServiceServicer_to_server
from file_pb2_grpc import add_FileServiceServicer_to_server
return add_RepoServiceServicer_to_server, add_FileServiceServicer_to_server
@pytest.fixture(scope='module')
def grpc_servicer():
from serviers.repo_servicer import RepoServicer
from serviers.file_servicer import FileServicer
return RepoServicer(), FileServicer()
@pytest.fixture(scope='module')
def grpc_server(_grpc_server, grpc_addr, grpc_add_to_server, grpc_servicer):
for func, servicer in zip(grpc_add_to_server, grpc_servicer):
func(servicer, _grpc_server)
_grpc_server.add_insecure_port(grpc_addr)
_grpc_server.start()
yield _grpc_server
_grpc_server.stop(grace=None)
Yep, looks ugly. I'm going to look something about this case.
Interested to see how we can add multiple services as well.
With the above example, how should we handle this method?
def grpc_stub_cls(grpc_channel):
...
Did anyone figure out the answer?
Also interested in this feature, would be good to integrate a better way to do this.