2020-06-04 11:34:20 -07:00

35 lines
1.0 KiB
Python

from typing import Dict
import grpclib.const
import grpclib.server
import pytest
from grpclib.testing import ChannelFor
import betterproto
from betterproto.tests.output_betterproto.repeated.repeated import (
ExampleServiceStub,
Test,
)
class ExampleService:
async def DoThing(self, stream: "grpclib.server.Stream[Test, Test]"):
request = await stream.recv_message()
await stream.send_message(request)
def __mapping__(self) -> Dict[str, grpclib.const.Handler]:
return {
"/repeated.ExampleService/DoThing": grpclib.const.Handler(
self.DoThing, grpclib.const.Cardinality.UNARY_UNARY, Test, Test,
),
}
@pytest.mark.asyncio
async def test_sets_serialized_on_wire() -> None:
async with ChannelFor([ExampleService()]) as channel:
stub = ExampleServiceStub(channel)
response = await stub.do_thing(names=["a", "b", "c"])
assert betterproto.serialized_on_wire(response)
assert response.names == ["a", "b", "c"]