Ejemplo n.º 1
0
  def test_immediately_connectable_channel_connectivity(self):
    server_completion_queue = _low.CompletionQueue()
    server = _low.Server(server_completion_queue, [])
    port = server.add_http2_port('[::]:0')
    server.start()
    server_completion_queue_thread = threading.Thread(
        target=_drive_completion_queue, args=(server_completion_queue,))
    server_completion_queue_thread.start()
    channel = beta.create_insecure_channel('localhost', port)
    callback = _Callback()

    try:
      ready_future = utilities.channel_ready_future(channel)
      ready_future.add_done_callback(callback.accept_value)
      self.assertIsNone(
          ready_future.result(test_constants.SHORT_TIMEOUT))
      value_passed_to_callback = callback.block_until_called()
      self.assertIs(ready_future, value_passed_to_callback)
      self.assertFalse(ready_future.cancelled())
      self.assertTrue(ready_future.done())
      self.assertFalse(ready_future.running())
      # Cancellation after maturity has no effect.
      ready_future.cancel()
      self.assertFalse(ready_future.cancelled())
      self.assertTrue(ready_future.done())
      self.assertFalse(ready_future.running())
    finally:
      ready_future.cancel()
      server.shutdown()
      server_completion_queue.shutdown()
      server_completion_queue_thread.join()
Ejemplo n.º 2
0
    def test_immediately_connectable_channel_connectivity(self):
        server_completion_queue = _low.CompletionQueue()
        server = _low.Server(server_completion_queue, [])
        port = server.add_http2_port('[::]:0')
        server.start()
        server_completion_queue_thread = threading.Thread(
            target=_drive_completion_queue, args=(server_completion_queue, ))
        server_completion_queue_thread.start()
        channel = beta.create_insecure_channel('localhost', port)
        callback = _Callback()

        try:
            ready_future = utilities.channel_ready_future(channel)
            ready_future.add_done_callback(callback.accept_value)
            self.assertIsNone(ready_future.result(
                test_constants.SHORT_TIMEOUT))
            value_passed_to_callback = callback.block_until_called()
            self.assertIs(ready_future, value_passed_to_callback)
            self.assertFalse(ready_future.cancelled())
            self.assertTrue(ready_future.done())
            self.assertFalse(ready_future.running())
            # Cancellation after maturity has no effect.
            ready_future.cancel()
            self.assertFalse(ready_future.cancelled())
            self.assertTrue(ready_future.done())
            self.assertFalse(ready_future.running())
        finally:
            ready_future.cancel()
            server.shutdown()
            server_completion_queue.shutdown()
            server_completion_queue_thread.join()
Ejemplo n.º 3
0
  def test_lonely_channel_connectivity(self):
    channel = beta.create_insecure_channel('localhost', 12345)
    callback = _Callback()

    ready_future = utilities.channel_ready_future(channel)
    ready_future.add_done_callback(callback.accept_value)
    with self.assertRaises(future.TimeoutError):
      ready_future.result(test_constants.SHORT_TIMEOUT)
    self.assertFalse(ready_future.cancelled())
    self.assertFalse(ready_future.done())
    self.assertTrue(ready_future.running())
    ready_future.cancel()
    value_passed_to_callback = callback.block_until_called()
    self.assertIs(ready_future, value_passed_to_callback)
    self.assertTrue(ready_future.cancelled())
    self.assertTrue(ready_future.done())
    self.assertFalse(ready_future.running())
Ejemplo n.º 4
0
    def test_lonely_channel_connectivity(self):
        channel = beta.create_insecure_channel('localhost', 12345)
        callback = _Callback()

        ready_future = utilities.channel_ready_future(channel)
        ready_future.add_done_callback(callback.accept_value)
        with self.assertRaises(future.TimeoutError):
            ready_future.result(test_constants.SHORT_TIMEOUT)
        self.assertFalse(ready_future.cancelled())
        self.assertFalse(ready_future.done())
        self.assertTrue(ready_future.running())
        ready_future.cancel()
        value_passed_to_callback = callback.block_until_called()
        self.assertIs(ready_future, value_passed_to_callback)
        self.assertTrue(ready_future.cancelled())
        self.assertTrue(ready_future.done())
        self.assertFalse(ready_future.running())
Ejemplo n.º 5
0
def _CreateService(test_pb2):
  """Provides a servicer backend and a stub.

  The servicer is just the implementation of the actual servicer passed to the
  face player of the python RPC implementation; the two are detached.

  Args:
    test_pb2: The test_pb2 module generated by this test.

  Yields:
    A (servicer_methods, stub) pair where servicer_methods is the back-end of
      the service bound to the stub and and stub is the stub on which to invoke
      RPCs.
  """
  servicer_methods = _ServicerMethods(test_pb2)

  class Servicer(getattr(test_pb2, SERVICER_IDENTIFIER)):

    def UnaryCall(self, request, context):
      return servicer_methods.UnaryCall(request, context)

    def StreamingOutputCall(self, request, context):
      return servicer_methods.StreamingOutputCall(request, context)

    def StreamingInputCall(self, request_iter, context):
      return servicer_methods.StreamingInputCall(request_iter, context)

    def FullDuplexCall(self, request_iter, context):
      return servicer_methods.FullDuplexCall(request_iter, context)

    def HalfDuplexCall(self, request_iter, context):
      return servicer_methods.HalfDuplexCall(request_iter, context)

  servicer = Servicer()
  server = getattr(test_pb2, SERVER_FACTORY_IDENTIFIER)(servicer)
  port = server.add_insecure_port('[::]:0')
  server.start()
  channel = beta.create_insecure_channel('localhost', port)
  stub = getattr(test_pb2, STUB_FACTORY_IDENTIFIER)(channel)
  yield servicer_methods, stub
  server.stop(0)
Ejemplo n.º 6
0
 def setUp(self):
   self._server = beta.server({})
   port = self._server.add_insecure_port('[::]:0')
   channel = beta.create_insecure_channel('localhost', port)
   self._generic_stub = beta.generic_stub(channel)
   self._server.start()