From f25c66777ac572ba63106802f6e57613bec84781 Mon Sep 17 00:00:00 2001 From: boukeversteegh Date: Mon, 25 May 2020 18:41:11 +0200 Subject: [PATCH] #68 Service input messages are not imported --- .../import_service_input_message.proto | 15 +++++++++++++++ .../request_argument.proto | 5 +++++ .../request_message.proto | 5 +++++ .../test_import_service.py | 16 ++++++++++++++++ betterproto/tests/test_inputs.py | 7 ++++++- 5 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 betterproto/tests/inputs/import_service_input_message/import_service_input_message.proto create mode 100644 betterproto/tests/inputs/import_service_input_message/request_argument.proto create mode 100644 betterproto/tests/inputs/import_service_input_message/request_message.proto create mode 100644 betterproto/tests/inputs/import_service_input_message/test_import_service.py diff --git a/betterproto/tests/inputs/import_service_input_message/import_service_input_message.proto b/betterproto/tests/inputs/import_service_input_message/import_service_input_message.proto new file mode 100644 index 0000000..a5073db --- /dev/null +++ b/betterproto/tests/inputs/import_service_input_message/import_service_input_message.proto @@ -0,0 +1,15 @@ +syntax = "proto3"; + +import "request_message.proto"; + +// Tests generated service correctly imports the RequestMessage + +service Test { + rpc DoThing (RequestMessage) returns (RequestResponse); +} + + +message RequestResponse { + int32 value = 1; +} + diff --git a/betterproto/tests/inputs/import_service_input_message/request_argument.proto b/betterproto/tests/inputs/import_service_input_message/request_argument.proto new file mode 100644 index 0000000..f409e4e --- /dev/null +++ b/betterproto/tests/inputs/import_service_input_message/request_argument.proto @@ -0,0 +1,5 @@ +syntax = "proto3"; + +message RequestArgument { + +} \ No newline at end of file diff --git a/betterproto/tests/inputs/import_service_input_message/request_message.proto b/betterproto/tests/inputs/import_service_input_message/request_message.proto new file mode 100644 index 0000000..5bfceed --- /dev/null +++ b/betterproto/tests/inputs/import_service_input_message/request_message.proto @@ -0,0 +1,5 @@ +syntax = "proto3"; + +message RequestMessage { + int32 argument = 1; +} \ No newline at end of file diff --git a/betterproto/tests/inputs/import_service_input_message/test_import_service.py b/betterproto/tests/inputs/import_service_input_message/test_import_service.py new file mode 100644 index 0000000..b941c03 --- /dev/null +++ b/betterproto/tests/inputs/import_service_input_message/test_import_service.py @@ -0,0 +1,16 @@ +import pytest + +from betterproto.tests.mocks import MockChannel +from betterproto.tests.output_betterproto.import_service_input_message.import_service_input_message import ( + RequestResponse, + TestStub, +) + + +@pytest.mark.xfail(reason="Request Input Messages are not imported for service") +@pytest.mark.asyncio +async def test_service_correctly_imports_reference_message(): + mock_response = RequestResponse(value=10) + service = TestStub(MockChannel([mock_response])) + response = await service.do_thing() + assert mock_response == response diff --git a/betterproto/tests/test_inputs.py b/betterproto/tests/test_inputs.py index 1d31348..7c7026e 100644 --- a/betterproto/tests/test_inputs.py +++ b/betterproto/tests/test_inputs.py @@ -46,7 +46,12 @@ class TestCases: test_cases = TestCases( path=inputs_path, # test cases for services - services={"googletypes_response", "googletypes_response_embedded", "service"}, + services={ + "googletypes_response", + "googletypes_response_embedded", + "service", + "import_service_input_message_dependency", + }, xfail=xfail.tests, )