From 51e38fa508d93b62b105ddfc67c2efb3359d4204 Mon Sep 17 00:00:00 2001 From: Lidi Zheng Date: Wed, 15 Apr 2020 15:26:07 -0700 Subject: [PATCH] Allow "None" as response message with none-OK status --- .../grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi | 12 ++++-------- .../grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi | 5 ++++- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi b/src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi index abd1543572f..7070c0b4d4d 100644 --- a/src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi +++ b/src/python/grpcio/grpc/_cython/_cygrpc/aio/server.pyx.pxi @@ -264,14 +264,10 @@ async def _finish_handler_with_unary_response(RPCState rpc_state, rpc_state.raise_for_termination() # Serializes the response message - cdef bytes response_raw - if rpc_state.status_code == StatusCode.ok: - response_raw = serialize( - response_serializer, - response_message, - ) - else: - response_raw = b'' + cdef bytes response_raw = serialize( + response_serializer, + response_message, + ) # Assembles the batch operations cdef tuple finish_ops diff --git a/src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi b/src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi index c8a390106a8..3f3fd75407c 100644 --- a/src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi +++ b/src/python/grpcio/grpc/_cython/_cygrpc/operation.pyx.pxi @@ -49,7 +49,10 @@ cdef class SendInitialMetadataOperation(Operation): cdef class SendMessageOperation(Operation): def __cinit__(self, bytes message, int flags): - self._message = message + if message is None: + self._message = b'' + else: + self._message = message self._flags = flags def type(self):