4545 try :
4646 from google .showcase_v1beta1 .services .echo .transports import (
4747 AsyncEchoRestTransport ,
48+ AsyncEchoRestInterceptor ,
4849 )
4950
5051 HAS_ASYNC_REST_ECHO_TRANSPORT = True
@@ -272,6 +273,28 @@ def post_expand_with_metadata(self, request, metadata):
272273 return request , metadata
273274
274275
276+ if HAS_ASYNC_REST_ECHO_TRANSPORT :
277+ class EchoMetadataClientRestAsyncInterceptor (AsyncEchoRestInterceptor ):
278+ request_metadata : Sequence [Tuple [str , str ]] = []
279+ response_metadata : Sequence [Tuple [str , str ]] = []
280+
281+ async def pre_echo (self , request , metadata ):
282+ self .request_metadata = metadata
283+ return request , metadata
284+
285+ async def post_echo_with_metadata (self , request , metadata ):
286+ self .response_metadata = metadata
287+ return request , metadata
288+
289+ async def pre_expand (self , request , metadata ):
290+ self .request_metadata = metadata
291+ return request , metadata
292+
293+ async def post_expand_with_metadata (self , request , metadata ):
294+ self .response_metadata = metadata
295+ return request , metadata
296+
297+
275298class EchoMetadataClientGrpcInterceptor (
276299 grpc .UnaryUnaryClientInterceptor ,
277300 grpc .UnaryStreamClientInterceptor ,
@@ -401,6 +424,7 @@ def intercepted_echo_grpc_async():
401424 )
402425 return EchoAsyncClient (transport = transport ), interceptor
403426
427+
404428@pytest .fixture
405429def intercepted_echo_rest ():
406430 transport_name = "rest"
@@ -415,3 +439,22 @@ def intercepted_echo_rest():
415439 interceptor = interceptor ,
416440 )
417441 return EchoClient (transport = transport ), interceptor
442+
443+
444+ @pytest .fixture
445+ def intercepted_echo_rest_async ():
446+ if not HAS_ASYNC_REST_ECHO_TRANSPORT :
447+ pytest .skip ("Skipping test with async rest." )
448+
449+ transport_name = "rest_asyncio"
450+ transport_cls = EchoAsyncClient .get_transport_class (transport_name )
451+ interceptor = EchoMetadataClientRestAsyncInterceptor ()
452+
453+ # The custom host explicitly bypasses https.
454+ transport = transport_cls (
455+ credentials = async_anonymous_credentials (),
456+ host = "localhost:7469" ,
457+ url_scheme = "http" ,
458+ interceptor = interceptor ,
459+ )
460+ return EchoAsyncClient (transport = transport ), interceptor
0 commit comments