14 """Tests server responding with RESOURCE_EXHAUSTED."""
21 from grpc
import _channel
27 _REQUEST = b
'\x00\x00\x00'
28 _RESPONSE = b
'\x00\x00\x00'
30 _UNARY_UNARY =
'/test/UnaryUnary'
31 _UNARY_STREAM =
'/test/UnaryStream'
32 _STREAM_UNARY =
'/test/StreamUnary'
33 _STREAM_STREAM =
'/test/StreamStream'
69 trigger.await_trigger()
74 trigger.await_trigger()
75 for _
in range(test_constants.STREAM_LENGTH):
80 trigger.await_trigger()
82 for request
in request_iterator:
88 trigger.await_trigger()
91 for request
in request_iterator:
97 def __init__(self, trigger, request_streaming, response_streaming):
123 if handler_call_details.method == _UNARY_UNARY:
125 elif handler_call_details.method == _UNARY_STREAM:
127 elif handler_call_details.method == _STREAM_UNARY:
129 elif handler_call_details.method == _STREAM_STREAM:
138 self.
_server_pool = logging_pool.pool(test_constants.THREAD_CONCURRENCY)
143 options=((
'grpc.so_reuseport', 0),),
144 maximum_concurrent_rpcs=test_constants.THREAD_CONCURRENCY)
145 port = self.
_server.add_insecure_port(
'[::]:0')
156 for _
in range(test_constants.THREAD_CONCURRENCY):
157 futures.append(multi_callable.future(_REQUEST))
164 self.assertEqual(grpc.StatusCode.RESOURCE_EXHAUSTED,
165 exception_context.exception.code())
167 future_exception = multi_callable.future(_REQUEST)
168 self.assertEqual(grpc.StatusCode.RESOURCE_EXHAUSTED,
169 future_exception.exception().
code())
172 for future
in futures:
173 self.assertEqual(_RESPONSE, future.result())
181 for _
in range(test_constants.THREAD_CONCURRENCY):
189 self.assertEqual(grpc.StatusCode.RESOURCE_EXHAUSTED,
190 exception_context.exception.code())
195 for response
in call:
196 self.assertEqual(_RESPONSE, response)
200 for response
in new_call:
201 self.assertEqual(_RESPONSE, response)
206 request =
iter([_REQUEST] * test_constants.STREAM_LENGTH)
207 for _
in range(test_constants.THREAD_CONCURRENCY):
208 futures.append(multi_callable.future(request))
215 self.assertEqual(grpc.StatusCode.RESOURCE_EXHAUSTED,
216 exception_context.exception.code())
218 future_exception = multi_callable.future(request)
219 self.assertEqual(grpc.StatusCode.RESOURCE_EXHAUSTED,
220 future_exception.exception().
code())
224 for future
in futures:
225 self.assertEqual(_RESPONSE, future.result())
233 request =
iter([_REQUEST] * test_constants.STREAM_LENGTH)
234 for _
in range(test_constants.THREAD_CONCURRENCY):
242 self.assertEqual(grpc.StatusCode.RESOURCE_EXHAUSTED,
243 exception_context.exception.code())
248 for response
in call:
249 self.assertEqual(_RESPONSE, response)
253 for response
in new_call:
254 self.assertEqual(_RESPONSE, response)
257 if __name__ ==
'__main__':
258 logging.basicConfig()
259 unittest.main(verbosity=2)