Skip to content

Commit 71810fd

Browse files
committed
add test
1 parent 3ba7c34 commit 71810fd

File tree

2 files changed

+19
-1
lines changed

2 files changed

+19
-1
lines changed

google/api_core/path_template.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -310,6 +310,7 @@ def transcode(http_options, message=None, **request_kwargs):
310310
if message:
311311
try:
312312
request["body"] = getattr(leftovers, body)
313+
delete_field(leftovers, body)
313314
except AttributeError as e:
314315
# gapic-generator-python appends underscores to field names
315316
# that collide with python keywords.
@@ -319,9 +320,9 @@ def transcode(http_options, message=None, **request_kwargs):
319320
# https://github.com/googleapis/python-api-core/issues/227
320321
if hasattr(leftovers, body + "_"):
321322
request["body"] = getattr(leftovers, body + "_")
323+
delete_field(leftovers, body + "_")
322324
else:
323325
raise e
324-
delete_field(leftovers, body)
325326
else:
326327
# gapic-generator-python appends underscores to field names
327328
# that collide with python keywords.

tests/unit/test_path_template.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,20 @@
1717
import mock
1818
import pytest
1919

20+
import proto
21+
2022
from google.api import auth_pb2
2123
from google.api_core import path_template
2224

2325

26+
class Breakpoint(proto.Message):
27+
name = proto.Field(proto.STRING, number=1)
28+
29+
class SomeMessage(proto.Message):
30+
breakpoint_ = proto.Field(Breakpoint, number=1)
31+
debuggee_id = proto.Field(proto.STRING, number=2)
32+
33+
2434
@pytest.mark.parametrize(
2535
"tmpl, args, kwargs, expected_result",
2636
[
@@ -420,6 +430,13 @@ def test_transcode_with_wildcard(
420430
{"data": {"id": 1, "info": "some info"}, "foo_": "bar"},
421431
["post", "/v1/no/template", {"id": 1, "info": "some info"}, {"foo": "bar"}],
422432
],
433+
# Single field body with reserved keyword, using message where field name has trailing underscore
434+
[
435+
[["post", "/v1/no/template", "breakpoint"]],
436+
SomeMessage(breakpoint_=Breakpoint(name="test"),debuggee_id="test")._pb,
437+
{},
438+
["post", "/v1/no/template", Breakpoint(name="test")._pb, SomeMessage(debuggee_id="test")._pb],
439+
],
423440
[
424441
[["post", "/v1/no/template", "oauth"]],
425442
auth_pb2.AuthenticationRule(

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy