Skip to content

Commit 296cd3e

Browse files
authored
fix: use disambiguated name for rpcs to avoid collisions (#2217)
1 parent de46272 commit 296cd3e

File tree

5 files changed

+33
-18
lines changed

5 files changed

+33
-18
lines changed

gapic/ads-templates/%namespace/%name/%version/%sub/services/%service/client.py.j2

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -345,7 +345,7 @@ class {{ service.client_name }}(metaclass={{ service.client_name }}Meta):
345345
{% if method.operation_service %}{# Extended Operations LRO #}
346346
def {{ method.name|snake_case }}_unary(self,
347347
{% else %}
348-
def {{ method.name|snake_case }}(self,
348+
def {{ method.safe_name|snake_case }}(self,
349349
{% endif %}{# Extended Operations LRO #}
350350
{% if not method.client_streaming %}
351351
request: Optional[Union[{{ method.input.ident }}, dict]] = None,

gapic/ads-templates/tests/unit/gapic/%name_%version/%sub/test_%service.py.j2

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -516,7 +516,7 @@ def test_{{ service.client_name|snake_case }}_create_channel_credentials_file(cl
516516
{% endif %}
517517

518518

519-
{% for method in service.methods.values() if 'grpc' in opts.transport %}{% with method_name = method.name|snake_case + "_unary" if method.operation_service else method.name|snake_case %}
519+
{% for method in service.methods.values() if 'grpc' in opts.transport %}{% with method_name = method.name|snake_case + "_unary" if method.operation_service else method.safe_name|snake_case %}
520520
@pytest.mark.parametrize("request_type", [
521521
{{ method.input.ident }},
522522
dict,
@@ -579,7 +579,7 @@ def test_{{ method_name }}(request_type, transport: str = 'grpc'):
579579
)
580580
{% endif %}
581581
{% if method.client_streaming %}
582-
response = client.{{ method.name|snake_case }}(iter(requests))
582+
response = client.{{ method.safe_name|snake_case }}(iter(requests))
583583
{% else %}
584584
response = client.{{ method_name }}(request)
585585
{% endif %}
@@ -1053,7 +1053,7 @@ def test_{{ method_name }}_raw_page_lro():
10531053

10541054
{% endfor %} {# method in methods for grpc #}
10551055

1056-
{% for method in service.methods.values() if 'rest' in opts.transport %}{% with method_name = method.name|snake_case + "_unary" if method.operation_service else method.name|snake_case %}{% if method.http_options %}
1056+
{% for method in service.methods.values() if 'rest' in opts.transport %}{% with method_name = method.name|snake_case + "_unary" if method.operation_service else method.safe_name|snake_case %}{% if method.http_options %}
10571057
{# TODO(kbandes): remove this if condition when client streaming are supported. #}
10581058
{% if not method.client_streaming %}
10591059
@pytest.mark.parametrize("request_type", [
@@ -1250,7 +1250,7 @@ def test_{{ method.name|snake_case }}_rest(request_type):
12501250
response_value._content = json_return_value.encode('UTF-8')
12511251
req.return_value = response_value
12521252
{% if method.client_streaming %}
1253-
response = client.{{ method.name|snake_case }}(iter(requests))
1253+
response = client.{{ method.safe_name|snake_case }}(iter(requests))
12541254
{% elif method.server_streaming %}
12551255
with mock.patch.object(response_value, 'iter_content') as iter_content:
12561256
iter_content.return_value = iter(json_return_value)
@@ -1546,7 +1546,7 @@ def test_{{ method_name }}_rest_bad_request(transport: str = 'rest', request_typ
15461546
response_value.request = Request()
15471547
req.return_value = response_value
15481548
{% if method.client_streaming %}
1549-
client.{{ method.name|snake_case }}(iter(requests))
1549+
client.{{ method.safe_name|snake_case }}(iter(requests))
15501550
{% else %}
15511551
client.{{ method_name }}(request)
15521552
{% endif %}
@@ -1814,7 +1814,7 @@ def test_{{ method_name }}_rest_no_http_options():
18141814
{% endfor -%} {#- method in methods for rest #}
18151815

18161816
{% for method in service.methods.values() if 'rest' in opts.transport and
1817-
not method.http_options %}{% with method_name = method.name|snake_case + "_unary" if method.operation_service else method.name|snake_case %}
1817+
not method.http_options %}{% with method_name = method.name|snake_case + "_unary" if method.operation_service else method.safe_name|snake_case %}
18181818
def test_{{ method_name }}_rest_error():
18191819
client = {{ service.client_name }}(
18201820
credentials=ga_credentials.AnonymousCredentials(),

gapic/templates/tests/unit/gapic/%name_%version/%sub/test_%service.py.j2

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -946,7 +946,7 @@ def test_{{ service.client_name|snake_case }}_create_channel_credentials_file(cl
946946
{% endfor -%} {#- method in methods for rest #}
947947

948948
{% for method in service.methods.values() if 'rest' in opts.transport and
949-
not method.http_options %}{% with method_name = (method.name + ("_unary" if method.operation_service else "")) | snake_case %}
949+
not method.http_options %}{% with method_name = method.name|snake_case + "_unary" if method.operation_service else method.safe_name|snake_case %}
950950
def test_{{ method_name }}_rest_error():
951951
client = {{ service.client_name }}(
952952
credentials=ga_credentials.AnonymousCredentials(),

gapic/templates/tests/unit/gapic/%name_%version/%sub/test_macros.j2

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -238,7 +238,7 @@ async def test_{{ method_name }}_async_use_cached_wrapped_rpc(transport: str = "
238238

239239
{% if method.client_streaming %}
240240
request = [{}]
241-
await client.{{ method.name|snake_case }}(request)
241+
await client.{{ method.safe_name|snake_case }}(request)
242242
{% else %}
243243
request = {}
244244
await client.{{ method_name }}(request)
@@ -255,7 +255,7 @@ async def test_{{ method_name }}_async_use_cached_wrapped_rpc(transport: str = "
255255
{% endif %}
256256

257257
{% if method.client_streaming %}
258-
await client.{{ method.name|snake_case }}(request)
258+
await client.{{ method.safe_name|snake_case }}(request)
259259
{% else %}
260260
await client.{{ method_name }}(request)
261261
{% endif %}
@@ -321,9 +321,9 @@ async def test_{{ method_name }}_async(transport: str = 'grpc_asyncio', request_
321321
))
322322
{% endif %}
323323
{% if method.client_streaming and method.server_streaming %}
324-
response = await client.{{ method.name|snake_case }}(iter(requests))
324+
response = await client.{{ method.safe_name|snake_case }}(iter(requests))
325325
{% elif method.client_streaming and not method.server_streaming %}
326-
response = await (await client.{{ method.name|snake_case }}(iter(requests)))
326+
response = await (await client.{{ method.safe_name|snake_case }}(iter(requests)))
327327
{% else %}
328328
response = await client.{{ method_name }}(request)
329329
{% endif %}
@@ -1001,7 +1001,7 @@ def test_{{ method_name }}_raw_page_lro():
10011001
{% endmacro %}
10021002

10031003
{% macro rest_required_tests(method, service, numeric_enums=False, full_extended_lro=False) %}
1004-
{% with method_name = method.safe_name|snake_case + "_unary" if method.extended_lro and not full_extended_lro else method.name|snake_case, method_output = method.extended_lro.operation_type if method.extended_lro and not full_extended_lro else method.output %}{% if method.http_options %}
1004+
{% with method_name = method.safe_name|snake_case + "_unary" if method.extended_lro and not full_extended_lro else method.safe_name|snake_case, method_output = method.extended_lro.operation_type if method.extended_lro and not full_extended_lro else method.output %}{% if method.http_options %}
10051005
{# TODO(kbandes): remove this if condition when lro and client streaming are supported. #}
10061006
{% if not method.client_streaming %}
10071007
def test_{{ method_name }}_rest_use_cached_wrapped_rpc():
@@ -1460,7 +1460,7 @@ def test_{{ method_name }}_rest_no_http_options():
14601460
#}
14611461
{% macro method_call_test_generic(test_name, method, service, api, transport, request_dict, is_async=False, routing_param=None) %}
14621462
{% set transport_name = get_transport_name(transport, is_async) %}
1463-
{% with method_name = (method.name + ("_unary" if method.operation_service else "")) | snake_case %}
1463+
{% with method_name = method.name|snake_case + "_unary" if method.operation_service else method.safe_name|snake_case %}
14641464
{% set async_method_prefix = "async " if is_async else "" %}
14651465
{% if is_async %}
14661466
@pytest.mark.asyncio
@@ -1713,7 +1713,7 @@ def test_unsupported_parameter_rest_asyncio():
17131713
{% set async_prefix = get_async_prefix(is_async) %}
17141714
{% set async_decorator = get_async_decorator(is_async) %}
17151715
{% set transport_name = get_transport_name(transport, is_async) %}
1716-
{% set method_name = method.name|snake_case %}
1716+
{% set method_name = method.safe_name|snake_case %}
17171717
{{async_decorator}}
17181718
{{async_prefix}}def test_{{ method_name }}_{{transport_name}}_error():
17191719
{% if transport_name == 'rest_asyncio' %}
@@ -1763,7 +1763,7 @@ def test_initialize_client_w_{{transport_name}}():
17631763
{% set async_prefix = get_async_prefix(is_async) %}
17641764
{% set async_decorator = get_async_decorator(is_async) %}
17651765
{% set transport_name = get_transport_name(transport, is_async) %}
1766-
{% set method_name = method.name|snake_case %}
1766+
{% set method_name = method.safe_name|snake_case %}
17671767
{% set mocked_session = "AsyncAuthorizedSession" if is_async else "Session" %}
17681768
{{ async_decorator }}
17691769
{{ async_prefix }}def test_{{ method_name }}_{{transport_name}}_bad_request(request_type={{ method.input.ident }}):
@@ -1862,7 +1862,7 @@ def test_initialize_client_w_{{transport_name}}():
18621862
{% set async_prefix = get_async_prefix(is_async) %}
18631863
{% set async_decorator = get_async_decorator(is_async) %}
18641864
{% set transport_name = get_transport_name(transport, is_async) %}
1865-
{% set method_name = method.name|snake_case %}
1865+
{% set method_name = method.safe_name|snake_case %}
18661866
{# NOTE: set method_output to method.extended_lro.operation_type for the following method types:
18671867
# (method.extended_lro and not full_extended_lro)
18681868
#}
@@ -2183,7 +2183,7 @@ def test_initialize_client_w_{{transport_name}}():
21832183
{% set async_prefix = get_async_prefix(is_async) %}
21842184
{% set async_decorator = get_async_decorator(is_async) %}
21852185
{% set transport_name = get_transport_name(transport, is_async) %}
2186-
{% set method_name = method.name|snake_case %}
2186+
{% set method_name = method.safe_name|snake_case %}
21872187
{% set async_method_prefix = "Async" if is_async else "" %}
21882188
{{async_decorator}}
21892189
@pytest.mark.parametrize("null_interceptor", [True, False])

tests/fragments/test_reserved_method_names.proto

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,13 @@ service MyService {
3030
};
3131
};
3232

33+
rpc Import(CreateImportRequest) returns (CreateImportResponse) {
34+
option (google.api.http) = {
35+
body: "*"
36+
post: "/import/v1"
37+
};
38+
};
39+
3340
rpc GrpcChannel(GrpcChannelRequest) returns (GrpcChannelResponse) {
3441
option (google.api.http) = {
3542
body: "*"
@@ -59,6 +66,14 @@ message CreateChannelResponse {
5966
string info = 1;
6067
}
6168

69+
message CreateImportRequest {
70+
string info = 1;
71+
}
72+
73+
message CreateImportResponse {
74+
string info = 1;
75+
}
76+
6277
message GrpcChannelRequest {
6378
string grpc_channel = 1;
6479
string info = 2;

0 commit comments

Comments
 (0)