_SERVICE_DESCRIPTIONS = { DIV: utilities.unary_unary_service_description( _div, math_pb2.DivArgs.FromString, math_pb2.DivReply.SerializeToString), DIV_MANY: utilities.stream_stream_service_description( _div_many, math_pb2.DivArgs.FromString, math_pb2.DivReply.SerializeToString), FIB: utilities.unary_stream_service_description(_fib, math_pb2.FibArgs.FromString, math_pb2.Num.SerializeToString), SUM: utilities.stream_unary_service_description(_sum, math_pb2.Num.FromString, math_pb2.Num.SerializeToString), } _TIMEOUT = 3 class EarlyAdopterImplementationsTest(unittest.TestCase): def setUp(self): self.server = implementations.insecure_server(_SERVICE_DESCRIPTIONS, 0) self.server.start() port = self.server.port() self.stub = implementations.insecure_stub(_INVOCATION_DESCRIPTIONS, 'localhost', port) def tearDown(self): self.server.stop()
def _streaming_input_call(request_iterator, unused_context): aggregate_size = 0 for request in request_iterator: if request.payload and request.payload.body: aggregate_size += len(request.payload.body) return messages_pb2.StreamingInputCallResponse( aggregated_payload_size=aggregate_size) _CLIENT_STREAMING_INPUT_CALL = utilities.stream_unary_invocation_description( messages_pb2.StreamingInputCallRequest.SerializeToString, messages_pb2.StreamingInputCallResponse.FromString) _SERVER_STREAMING_INPUT_CALL = utilities.stream_unary_service_description( _streaming_input_call, messages_pb2.StreamingInputCallRequest.FromString, messages_pb2.StreamingInputCallResponse.SerializeToString) def _full_duplex_call(request_iterator, unused_context): for request in request_iterator: yield messages_pb2.StreamingOutputCallResponse( payload=messages_pb2.Payload(type=request.payload.type, body=b'\x00' * request.response_parameters[0].size)) _CLIENT_FULL_DUPLEX_CALL = utilities.stream_stream_invocation_description( messages_pb2.StreamingOutputCallRequest.SerializeToString, messages_pb2.StreamingOutputCallResponse.FromString) _SERVER_FULL_DUPLEX_CALL = utilities.stream_stream_service_description(
FIB: utilities.unary_stream_invocation_description( math_pb2.FibArgs.SerializeToString, math_pb2.Num.FromString), SUM: utilities.stream_unary_invocation_description( math_pb2.Num.SerializeToString, math_pb2.Num.FromString), } _SERVICE_DESCRIPTIONS = { DIV: utilities.unary_unary_service_description( _div, math_pb2.DivArgs.FromString, math_pb2.DivReply.SerializeToString), DIV_MANY: utilities.stream_stream_service_description( _div_many, math_pb2.DivArgs.FromString, math_pb2.DivReply.SerializeToString), FIB: utilities.unary_stream_service_description( _fib, math_pb2.FibArgs.FromString, math_pb2.Num.SerializeToString), SUM: utilities.stream_unary_service_description( _sum, math_pb2.Num.FromString, math_pb2.Num.SerializeToString), } _TIMEOUT = 3 class EarlyAdopterImplementationsTest(unittest.TestCase): def setUp(self): self.server = implementations.insecure_server(_SERVICE_DESCRIPTIONS, 0) self.server.start() port = self.server.port() self.stub = implementations.insecure_stub(_INVOCATION_DESCRIPTIONS, 'localhost', port) def tearDown(self): self.server.stop()
messages_pb2.StreamingOutputCallResponse.SerializeToString) def _streaming_input_call(request_iterator, unused_context): aggregate_size = 0 for request in request_iterator: if request.payload and request.payload.body: aggregate_size += len(request.payload.body) return messages_pb2.StreamingInputCallResponse( aggregated_payload_size=aggregate_size) _CLIENT_STREAMING_INPUT_CALL = utilities.stream_unary_invocation_description( messages_pb2.StreamingInputCallRequest.SerializeToString, messages_pb2.StreamingInputCallResponse.FromString) _SERVER_STREAMING_INPUT_CALL = utilities.stream_unary_service_description( _streaming_input_call, messages_pb2.StreamingInputCallRequest.FromString, messages_pb2.StreamingInputCallResponse.SerializeToString) def _full_duplex_call(request_iterator, unused_context): for request in request_iterator: yield messages_pb2.StreamingOutputCallResponse( payload=messages_pb2.Payload( type=request.payload.type, body=b'\x00' * request.response_parameters[0].size)) _CLIENT_FULL_DUPLEX_CALL = utilities.stream_stream_invocation_description( messages_pb2.StreamingOutputCallRequest.SerializeToString, messages_pb2.StreamingOutputCallResponse.FromString) _SERVER_FULL_DUPLEX_CALL = utilities.stream_stream_service_description( _full_duplex_call,