Skip to content

Commit b793017

Browse files
authored
fix: fix rest transport unit test and required query prams handling (#951)
1 parent 36e9c11 commit b793017

File tree

2 files changed

+6
-9
lines changed

2 files changed

+6
-9
lines changed

gapic/templates/%namespace/%name_%version/%sub/services/%service/transports/rest.py.j2

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ class {{ service.name }}RestTransport({{ service.name }}Transport):
5252
client_cert_source_for_mtls: Callable[[], Tuple[bytes, bytes]] = None,
5353
quota_project_id: Optional[str] = None,
5454
client_info: gapic_v1.client_info.ClientInfo = DEFAULT_CLIENT_INFO,
55+
always_use_jwt_access: Optional[bool] = False,
5556
) -> None:
5657
"""Instantiate the transport.
5758

@@ -88,6 +89,7 @@ class {{ service.name }}RestTransport({{ service.name }}Transport):
8889
host=host,
8990
credentials=credentials,
9091
client_info=client_info,
92+
always_use_jwt_access=always_use_jwt_access,
9193
)
9294
self._session = AuthorizedSession(self._credentials, default_host=self.DEFAULT_HOST)
9395
{% if service.has_lro %}
@@ -196,23 +198,17 @@ class {{ service.name }}RestTransport({{ service.name }}Transport):
196198
if {{ method.input.ident }}.{{ field }} in request:
197199
query_params['{{ field|camel_case }}'] = request.{{ field }}
198200
{% else %}
199-
if request.{{ field }}:
200-
query_params['{{ field|camel_case }}'] = request.{{ field }}
201+
query_params['{{ field|camel_case }}'] = request.{{ field }}
201202
{% endif %}
202203
{% endfor %}
203204

204-
# TODO(yon-mg): further discussion needed whether 'python truthiness' is appropriate here
205-
# discards default values
206-
# TODO(yon-mg): add test for proper url encoded strings
207-
query_params = ['{k}={v}'.format(k=k, v=v) for k, v in query_params.items()]
208-
url += '?{}'.format('&'.join(query_params)).replace(' ', '+')
209-
210205
# Send the request
211206
headers = dict(metadata)
212207
headers['Content-Type'] = 'application/json'
213208
response = self._session.{{ method.http_opt['verb'] }}(
214209
url,
215210
headers=headers,
211+
params=query_params,
216212
{% if 'body' in method.http_opt %}
217213
data=body,
218214
{% endif %}

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1220,6 +1220,7 @@ def test_{{ method.name|snake_case }}_rest_flattened():
12201220
assert len(req.mock_calls) == 1
12211221
_, http_call, http_params = req.mock_calls[0]
12221222
body = http_params.get('data')
1223+
params = http_params.get('params')
12231224
{% for key, field in method.flattened_fields.items() %}
12241225
{% if not field.oneof or field.proto3_optional %}
12251226
{% if field.ident|string() == 'timestamp_pb2.Timestamp' %}
@@ -1230,7 +1231,7 @@ def test_{{ method.name|snake_case }}_rest_flattened():
12301231
assert {% if field.field_pb is msg_field_pb %}{{ field.ident }}.to_json({{ field.name }}, including_default_value_fields=False, use_integers_for_enums=False)
12311232
{%- elif field.field_pb is str_field_pb %}{{ field.mock_value }}
12321233
{%- else %}str({{ field.mock_value }})
1233-
{%- endif %} in http_call[1] + str(body)
1234+
{%- endif %} in http_call[1] + str(body) + str(params)
12341235
{% endif %}
12351236
{% endif %}{% endfor %}
12361237

0 commit comments

Comments
 (0)