def test_chat(transport: str = 'grpc'): client = EchoClient( credentials=credentials.AnonymousCredentials(), transport=transport, ) # Everything is optional in proto3 as far as the runtime is concerned, # and we are mocking out the actual API, so just send an empty request. request = gs_echo.EchoRequest() requests = [request] # Mock the actual call within the gRPC stub, and fake the request. with mock.patch.object(type(client._transport.chat), '__call__') as call: # Designate an appropriate return value for the call. call.return_value = iter([gs_echo.EchoResponse()]) response = client.chat(iter(requests)) # Establish that the underlying gRPC stub method was called. assert len(call.mock_calls) == 1 _, args, _ = call.mock_calls[0] assert next(args[0]) == request # Establish that the response is the type that we expect. for message in response: assert isinstance(message, gs_echo.EchoResponse)
def test_chat(): print("=================test chat ===================") client = EchoClient(transport=transport) content = 'The rain in Spain stays mainly on the Plain!' requests = content.split(' ') requests = map(lambda s: gs_echo.EchoRequest(content=s), requests) responses = client.chat(iter(requests)) for res in responses: print(res) print("trailing metadata...") print(responses.trailing_metadata())
def run_should_pass(): print("================= should pass ====================") header_adder_interceptor = client_interceptor.header_adder_interceptor( 'one-time-password', '42') channel = grpc.insecure_channel('localhost:50051') intercept_channel = grpc.intercept_channel(channel, header_adder_interceptor) transport = transports.EchoGrpcTransport(channel=intercept_channel) client = EchoClient(transport=transport) content = 'The rain in Spain stays mainly on the Plain!' requests = content.split(' ') requests = map(lambda s: gs_echo.EchoRequest(content=s), requests) responses = client.chat(iter(requests)) for res in responses: print(res) print("trailing metadata...") print(responses.trailing_metadata())
def run_should_fail(): print( "================= should fail with 'Access denied!' ====================" ) channel = grpc.insecure_channel('localhost:50051') transport = transports.EchoGrpcTransport(channel=channel) client = EchoClient(transport=transport) content = 'The rain in Spain stays mainly on the Plain!' requests = content.split(' ') requests = map(lambda s: gs_echo.EchoRequest(content=s), requests) try: responses = client.chat(iter(requests)) for res in responses: print(res) print("trailing metadata...") print(responses.trailing_metadata()) except: print(sys.exc_info())