Test Service instantiation as part of standard test-case
This commit is contained in:
parent
20150fdcf3
commit
ec5683e572
@ -10,6 +10,6 @@ message DoThingResponse {
|
|||||||
int32 successfulIterations = 1;
|
int32 successfulIterations = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
service ExampleService {
|
service Test {
|
||||||
rpc DoThing (DoThingRequest) returns (DoThingResponse);
|
rpc DoThing (DoThingRequest) returns (DoThingResponse);
|
||||||
}
|
}
|
||||||
|
@ -7,7 +7,7 @@ from typing import Dict
|
|||||||
from betterproto.tests.output_betterproto.service.service import (
|
from betterproto.tests.output_betterproto.service.service import (
|
||||||
DoThingResponse,
|
DoThingResponse,
|
||||||
DoThingRequest,
|
DoThingRequest,
|
||||||
ExampleServiceStub,
|
TestStub as ExampleServiceStub,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@ -29,12 +29,12 @@ class ExampleService:
|
|||||||
|
|
||||||
def __mapping__(self) -> Dict[str, grpclib.const.Handler]:
|
def __mapping__(self) -> Dict[str, grpclib.const.Handler]:
|
||||||
return {
|
return {
|
||||||
"/service.ExampleService/DoThing": grpclib.const.Handler(
|
"/service.Test/DoThing": grpclib.const.Handler(
|
||||||
self.DoThing,
|
self.DoThing,
|
||||||
grpclib.const.Cardinality.UNARY_UNARY,
|
grpclib.const.Cardinality.UNARY_UNARY,
|
||||||
DoThingRequest,
|
DoThingRequest,
|
||||||
DoThingResponse,
|
DoThingResponse,
|
||||||
)
|
),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -99,7 +99,7 @@ async def test_service_call_lower_level_with_overrides():
|
|||||||
) as channel:
|
) as channel:
|
||||||
stub = ExampleServiceStub(channel, deadline=deadline, metadata=metadata)
|
stub = ExampleServiceStub(channel, deadline=deadline, metadata=metadata)
|
||||||
response = await stub._unary_unary(
|
response = await stub._unary_unary(
|
||||||
"/service.ExampleService/DoThing",
|
"/service.Test/DoThing",
|
||||||
DoThingRequest(ITERATIONS),
|
DoThingRequest(ITERATIONS),
|
||||||
DoThingResponse,
|
DoThingResponse,
|
||||||
deadline=kwarg_deadline,
|
deadline=kwarg_deadline,
|
||||||
@ -123,7 +123,7 @@ async def test_service_call_lower_level_with_overrides():
|
|||||||
) as channel:
|
) as channel:
|
||||||
stub = ExampleServiceStub(channel, deadline=deadline, metadata=metadata)
|
stub = ExampleServiceStub(channel, deadline=deadline, metadata=metadata)
|
||||||
response = await stub._unary_unary(
|
response = await stub._unary_unary(
|
||||||
"/service.ExampleService/DoThing",
|
"/service.Test/DoThing",
|
||||||
DoThingRequest(ITERATIONS),
|
DoThingRequest(ITERATIONS),
|
||||||
DoThingResponse,
|
DoThingResponse,
|
||||||
timeout=kwarg_timeout,
|
timeout=kwarg_timeout,
|
@ -5,7 +5,7 @@ from grpclib.client import Channel
|
|||||||
|
|
||||||
class MockChannel(Channel):
|
class MockChannel(Channel):
|
||||||
# noinspection PyMissingConstructor
|
# noinspection PyMissingConstructor
|
||||||
def __init__(self, responses: List) -> None:
|
def __init__(self, responses: List = []) -> None:
|
||||||
self.responses = responses
|
self.responses = responses
|
||||||
self.requests = []
|
self.requests = []
|
||||||
|
|
||||||
|
@ -9,6 +9,7 @@ import pytest
|
|||||||
|
|
||||||
import betterproto
|
import betterproto
|
||||||
from betterproto.tests.inputs import xfail
|
from betterproto.tests.inputs import xfail
|
||||||
|
from betterproto.tests.mocks import MockChannel
|
||||||
from betterproto.tests.util import get_directories, get_test_case_json_data, inputs_path
|
from betterproto.tests.util import get_directories, get_test_case_json_data, inputs_path
|
||||||
|
|
||||||
# Force pure-python implementation instead of C++, otherwise imports
|
# Force pure-python implementation instead of C++, otherwise imports
|
||||||
@ -113,6 +114,12 @@ def test_message_json(repeat, test_data: TestData) -> None:
|
|||||||
assert json.loads(json_data) == json.loads(message_json)
|
assert json.loads(json_data) == json.loads(message_json)
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.parametrize("test_data", test_cases.services, indirect=True)
|
||||||
|
def test_service_can_be_instantiated(test_data: TestData) -> None:
|
||||||
|
plugin_module, _, json_data = test_data
|
||||||
|
plugin_module.TestStub(MockChannel())
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize("test_data", test_cases.messages_with_json, indirect=True)
|
@pytest.mark.parametrize("test_data", test_cases.messages_with_json, indirect=True)
|
||||||
def test_binary_compatibility(repeat, test_data: TestData) -> None:
|
def test_binary_compatibility(repeat, test_data: TestData) -> None:
|
||||||
plugin_module, reference_module, json_data = test_data
|
plugin_module, reference_module, json_data = test_data
|
||||||
|
Loading…
x
Reference in New Issue
Block a user