14 """Tests the behaviour of the Call classes under a secure channel."""
22 from src.proto.grpc.testing
import messages_pb2
23 from src.proto.grpc.testing
import test_pb2_grpc
28 _SERVER_HOST_OVERRIDE =
'foo.test.google.fr'
29 _NUM_STREAM_RESPONSES = 5
30 _RESPONSE_PAYLOAD_SIZE = 42
34 """A Mixin to run the call tests over a secure channel."""
38 (resources.private_key(), resources.certificate_chain())
41 resources.test_root_certificates())
44 secure=
True, server_credentials=server_credentials)
46 'grpc.ssl_target_name_override',
47 _SERVER_HOST_OVERRIDE,
49 self.
_channel = aio.secure_channel(self._server_address,
50 channel_credentials, channel_options)
53 async
def tearDown(self):
59 """unary_unary Calls made over a secure channel."""
64 self.assertIsInstance(response, messages_pb2.SimpleResponse)
65 self.assertEqual(await call.code(), grpc.StatusCode.OK)
67 async
def test_call_with_credentials(self):
73 credentials=call_credentials)
76 self.assertIsInstance(response, messages_pb2.SimpleResponse)
80 """unary_stream calls over a secure channel"""
84 request.response_parameters.extend(
86 for _
in range(_NUM_STREAM_RESPONSES))
91 call = self.
_stub.StreamingOutputCall(request,
92 credentials=call_credentials)
94 async
for response
in call:
95 self.assertIsInstance(response,
96 messages_pb2.StreamingOutputCallResponse)
97 self.assertEqual(
len(response.payload.body), _RESPONSE_PAYLOAD_SIZE)
99 self.assertEqual(await call.code(), grpc.StatusCode.OK)
104 _STREAM_OUTPUT_REQUEST_ONE_RESPONSE.response_parameters.append(
109 _STREAM_ITERATIONS = 2
113 async
def request_generator():
115 yield _STREAM_OUTPUT_REQUEST_ONE_RESPONSE
122 call = self.
_stub.FullDuplexCall(request_generator(),
123 credentials=call_credentials)
124 async
for response
in call:
125 self.assertEqual(_RESPONSE_PAYLOAD_SIZE,
len(response.payload.body))
127 self.assertEqual(await call.code(), grpc.StatusCode.OK)
130 if __name__ ==
'__main__':
131 logging.basicConfig(level=logging.DEBUG)
132 unittest.main(verbosity=2)