Exemple #1
0
 def _set_socket(self, sock):
     if self._socket is None:
         self._socket = wrap_socket(sock)
         self._state = None
         if self._socket is not None:
             self._socket.settimeout(0)
     else:
         raise RuntimeError('Cannot set socket. Close the existing one.')
Exemple #2
0
 def _set_socket(self, sock, read_timeout=None):
     if not isinstance(sock, AsyncIOStream):
         if self._socket_timeout == 0:
             sock = AsyncIOStream(sock)
         else:
             sock = wrap_socket(sock)
             sock.settimeout(self._socket_timeout)
     self.sock = sock
     if self.async:
         close_callback = Deferred().add_callback(self.close)
         self.sock.set_close_callback(close_callback)
         self.read_timeout = read_timeout
Exemple #3
0
 def testWriteError(self):
     server = pulsar.create_socket('127.0.0.1:0')
     client = pulsar.create_connection(server.name, blocking=3)
     client_connection, address = server.accept()
     count = 0
     while address is None and count < 10:
         count += 1
         yield pulsar.NOT_DONE
         client_connection, address = server.accept()
     self.assertEqual(client.name, address)
     client_connection = pulsar.wrap_socket(client_connection)
     client_connection.send = mock.MagicMock(return_value=0)
     self.assertRaises(socket.error, client_connection.write, b'ciao')
     self.assertTrue(client_connection.closed)
Exemple #4
0
 def __init__(self, actor, socket, onthread=False, connection_class=None,
              response_class=None, timeout=None, **kwargs):
     self.actor = actor
     self.connection_class = connection_class or self.connection_class
     self.response_class = response_class or self.response_class
     self.sock = wrap_socket(socket)
     self.connections = set()
     self.timeout = timeout
     self.on_connection_callbacks = []
     if onthread:
         # Create a pulsar thread and starts it
         self.__ioloop = IOLoop()
         self.thread = PulsarThread(name=self.name, target=self._run)
         self.thread.actor = actor
         actor.requestloop.add_callback(lambda: self.thread.start())
     else:
         self.__ioloop = actor.requestloop
         actor.requestloop.add_callback(self._run)
Exemple #5
0
 def testWrite(self):
     server = pulsar.create_socket('127.0.0.1:0')
     self.assertEqual(server.accept(), (None, None))
     client = pulsar.create_connection(server.name, blocking=3)
     client_connection, address = server.accept()
     count = 0
     while address is None and count < 10:
         count += 1
         yield pulsar.NOT_DONE
         client_connection, address = server.accept()
     self.assertEqual(client.address, address)
     client_connection = pulsar.wrap_socket(client_connection)
     self.assertEqual(client_connection.write(b''), 0)
     self.assertEqual(client_connection.write(b'ciao'), 4)
     client_connection.close()
     self.assertTrue(client_connection.closed)
     data = client.recv()
     self.assertEqual(data, b'ciao')
     data = client.recv()
     # The socket has shutdown
     self.assertEqual(data, b'')