19 from gevent.pool
import Group
22 from src.proto.grpc.testing
import messages_pb2
23 from src.proto.grpc.testing
import test_pb2_grpc
26 _UNARY_CALL_METHOD_WITH_SLEEP =
'/grpc.testing.TestService/UnaryCallWithSleep'
42 stub = test_pb2_grpc.TestServiceStub(self.
_channel)
47 self.assertEqual(grpc.StatusCode.OK, response.code())
51 stub = test_pb2_grpc.TestServiceStub(self.
_channel)
52 greenlet = group.spawn(self.
_run_client, stub.UnaryCall)
56 group.killone(greenlet)
60 except Exception
as e:
61 self.fail(f
"Unexpected exception in greenlet: {e}")
66 _UNARY_CALL_METHOD_WITH_SLEEP,
67 request_serializer=messages_pb2.SimpleRequest.SerializeToString,
68 response_deserializer=messages_pb2.SimpleResponse.FromString,
70 greenlet = group.spawn(self.
_run_client, UnaryCallWithSleep)
73 group.killone(greenlet)
79 _UNARY_CALL_METHOD_WITH_SLEEP,
80 request_serializer=messages_pb2.SimpleRequest.SerializeToString,
81 response_deserializer=messages_pb2.SimpleResponse.FromString,
83 greenlet = group.spawn(self.
_run_client, UnaryCallWithSleep)
86 group.killone(greenlet, exception=Exception)
88 self.assertRaises(Exception, greenlet.get)
94 if e.code() != grpc.StatusCode.CANCELLED:
98 if exctype == gevent.GreenletExit:
101 sys.__excepthook__(exctype, value, tb)
104 if __name__ ==
'__main__':
105 unittest.main(verbosity=2)