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.')
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
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)
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)
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'')