Skip to content

Commit b1f1a65

Browse files
committed
address review feedback
1 parent dd24a2d commit b1f1a65

4 files changed

Lines changed: 42 additions & 18 deletions

File tree

‎packages/gapic-generator/gapic/templates/%namespace/%name_%version/%sub/services/%service/transports/grpc.py.j2‎

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -381,13 +381,17 @@ class {{ service.name }}GrpcTransport({{ service.name }}Transport):
381381
)
382382
self._stubs['{{ method.transport_safe_name|snake_case }}'] = _ErrorStub()
383383
else:
384-
if self._rest_transport is None:
385-
self._rest_transport = {{ service.name }}RestTransport(
386-
host=self._host,
387-
credentials=self._credentials,
388-
client_info=self._client_info,
389-
)
390-
self._stubs['{{ method.transport_safe_name|snake_case }}'] = self._rest_transport.{{ method.transport_safe_name|snake_case }}
384+
transport = self
385+
class _RestStub:
386+
def __call__(self, *args, **kwargs):
387+
if transport._rest_transport is None:
388+
transport._rest_transport = {{ service.name }}RestTransport(
389+
host=transport._host,
390+
credentials=transport._credentials,
391+
client_info=transport._client_info,
392+
)
393+
return transport._rest_transport.{{ method.transport_safe_name|snake_case }}(*args, **kwargs)
394+
self._stubs['{{ method.transport_safe_name|snake_case }}'] = _RestStub()
391395
{% else %}
392396
self._stubs['{{ method.transport_safe_name|snake_case }}'] = self._logged_channel.{{ method.grpc_stub_type }}(
393397
'/{{ '.'.join(method.meta.address.package) }}.{{ service.name }}/{{ method.name }}',

‎packages/gapic-generator/gapic/templates/tests/unit/gapic/%name_%version/%sub/test_%service.py.j2‎

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1540,11 +1540,19 @@ def test_{{ service.name|snake_case }}_{{ method.name|snake_case }}_grpc_rest_st
15401540
transport = transports.{{ service.name }}GrpcTransport(
15411541
credentials=ga_credentials.AnonymousCredentials(),
15421542
)
1543+
assert transport._rest_transport is None
1544+
stub = transport.{{ method.transport_safe_name|snake_case }}
1545+
assert transport._rest_transport is None
1546+
1547+
result1 = stub({{ method.input.ident }}())
15431548
rest_transport = transport._rest_transport
15441549
assert rest_transport is not None
1545-
transport._stubs.pop("{{ method.transport_safe_name|snake_case }}", None)
1546-
_ = transport.{{ method.transport_safe_name|snake_case }}
1550+
assert isinstance(result1, {{ method.client_output.ident }})
1551+
1552+
result2 = stub({{ method.input.ident }}())
1553+
assert isinstance(result2, {{ method.client_output.ident }})
15471554
assert transport._rest_transport is rest_transport
1555+
15481556
with mock.patch.object(rest_transport, "close") as mock_rest_close:
15491557
transport.close()
15501558
mock_rest_close.assert_called_once()

‎packages/gapic-generator/tests/integration/goldens/showcase/google/showcase_v1beta1/services/resumable_upload_service/transports/grpc.py‎

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -354,13 +354,17 @@ def __call__(self, *args, **kwargs):
354354
)
355355
self._stubs['upload_media'] = _ErrorStub()
356356
else:
357-
if self._rest_transport is None:
358-
self._rest_transport = ResumableUploadServiceRestTransport(
359-
host=self._host,
360-
credentials=self._credentials,
361-
client_info=self._client_info,
362-
)
363-
self._stubs['upload_media'] = self._rest_transport.upload_media
357+
transport = self
358+
class _RestStub:
359+
def __call__(self, *args, **kwargs):
360+
if transport._rest_transport is None:
361+
transport._rest_transport = ResumableUploadServiceRestTransport(
362+
host=transport._host,
363+
credentials=transport._credentials,
364+
client_info=transport._client_info,
365+
)
366+
return transport._rest_transport.upload_media(*args, **kwargs)
367+
self._stubs['upload_media'] = _RestStub()
364368
return self._stubs['upload_media']
365369

366370
def close(self):

‎packages/gapic-generator/tests/integration/goldens/showcase/tests/unit/gapic/showcase_v1beta1/test_resumable_upload_service.py‎

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2294,11 +2294,19 @@ def test_resumable_upload_service_upload_media_grpc_rest_stub():
22942294
transport = transports.ResumableUploadServiceGrpcTransport(
22952295
credentials=ga_credentials.AnonymousCredentials(),
22962296
)
2297+
assert transport._rest_transport is None
2298+
stub = transport.upload_media
2299+
assert transport._rest_transport is None
2300+
2301+
result1 = stub(resumable_upload.UploadMediaRequest())
22972302
rest_transport = transport._rest_transport
22982303
assert rest_transport is not None
2299-
transport._stubs.pop("upload_media", None)
2300-
_ = transport.upload_media
2304+
assert isinstance(result1, resumable_transfer.ResumableUploadSession)
2305+
2306+
result2 = stub(resumable_upload.UploadMediaRequest())
2307+
assert isinstance(result2, resumable_transfer.ResumableUploadSession)
23012308
assert transport._rest_transport is rest_transport
2309+
23022310
with mock.patch.object(rest_transport, "close") as mock_rest_close:
23032311
transport.close()
23042312
mock_rest_close.assert_called_once()

0 commit comments

Comments
 (0)