Browse Source

Expose the AbortError to enable users to identify the exception

Lidi Zheng 5 years ago
parent
commit
26367cecc2

+ 3 - 2
src/python/grpcio/grpc/experimental/aio/__init__.py

@@ -22,7 +22,7 @@ from typing import Any, Optional, Sequence, Text, Tuple
 import six
 import six
 
 
 import grpc
 import grpc
-from grpc._cython.cygrpc import init_grpc_aio
+from grpc._cython.cygrpc import init_grpc_aio, AbortError
 
 
 from ._base_call import Call, RpcContext, UnaryStreamCall, UnaryUnaryCall
 from ._base_call import Call, RpcContext, UnaryStreamCall, UnaryUnaryCall
 from ._call import AioRpcError
 from ._call import AioRpcError
@@ -86,4 +86,5 @@ __all__ = ('AioRpcError', 'RpcContext', 'Call', 'UnaryUnaryCall',
            'UnaryStreamCall', 'init_grpc_aio', 'Channel',
            'UnaryStreamCall', 'init_grpc_aio', 'Channel',
            'UnaryUnaryMultiCallable', 'ClientCallDetails',
            'UnaryUnaryMultiCallable', 'ClientCallDetails',
            'UnaryUnaryClientInterceptor', 'InterceptedUnaryUnaryCall',
            'UnaryUnaryClientInterceptor', 'InterceptedUnaryUnaryCall',
-           'insecure_channel', 'secure_channel', 'server')
+           'insecure_channel', 'secure_channel', 'server', 'Server',
+           'AbortError')

+ 2 - 2
src/python/grpcio_tests/tests_aio/unit/abort_test.py

@@ -47,7 +47,7 @@ class _GenericHandler(grpc.GenericRpcHandler):
     async def _suppress_abort(unused_request, context):
     async def _suppress_abort(unused_request, context):
         try:
         try:
             await context.abort(_ABORT_CODE, _ABORT_DETAILS)
             await context.abort(_ABORT_CODE, _ABORT_DETAILS)
-        except Exception as e:
+        except aio.AbortError as e:
             pass
             pass
         return _RESPONSE
         return _RESPONSE
 
 
@@ -55,7 +55,7 @@ class _GenericHandler(grpc.GenericRpcHandler):
     async def _replace_abort(unused_request, context):
     async def _replace_abort(unused_request, context):
         try:
         try:
             await context.abort(_ABORT_CODE, _ABORT_DETAILS)
             await context.abort(_ABORT_CODE, _ABORT_DETAILS)
-        except Exception as e:
+        except aio.AbortError as e:
             await context.abort(grpc.StatusCode.INVALID_ARGUMENT,
             await context.abort(grpc.StatusCode.INVALID_ARGUMENT,
                                 'Override abort!')
                                 'Override abort!')