class Connection(object): """Represents a connection to a server from a client.""" def __init__(self, loop, sock, addr, protocol, client): """Create a client connection.""" self.loop = loop self.sock = sock self.addr = addr self.protocol = protocol self.client = client logger.debug("making transport") self.transport = SocketTransport(self.loop, self.sock, self.protocol.data, self.closed) logger.debug("protocol.make_connection") self.protocol.make_connection(self.transport, self.addr) logger.debug("transport.start()") self.transport.start() logger.debug("transport started") def closed(self, reason): """Callback performed when the transport is closed.""" self.client.remove_connection(self) self.protocol.connection_lost(reason) if not isinstance(reason, ConnectionClosed): logger.warn("connection closed, reason {}".format(reason)) else: logger.info("connection closed") def close(self): """Close the connection.""" self.transport.close()
class Connection(object): """A connection to the server from a remote client.""" def __init__(self, loop, sock, address, protocol, server): """Create a server connection.""" self.loop = loop self.sock = sock self.address = address self.protocol = protocol self.server = server self.transport = SocketTransport(self.loop, self.sock, self.protocol.data, self.closed) def make_connection(self): self.transport.start() self.protocol.make_connection(self.transport, self.address) def closed(self, reason): """Callback performed when the transport is closed.""" self.server.remove_connection(self) self.protocol.connection_lost(reason) if not isinstance(reason, ConnectionClosed): logger.warn("connection closed, reason: %s" % str(reason)) else: logger.info("connection closed") def close(self): """Close the connection.""" self.transport.close()
def test_write(self): msg = b"hello" t = SocketTransport(loop, self.ssock, self.read, self.close) t.write(msg) loop.start(pyev.EVRUN_NOWAIT) rmsg = self.csock.recv(len(msg)) self.assertEqual(rmsg, msg)
def test_write(self): msg = b'hello' t = SocketTransport(loop, self.ssock, self.read, self.close) t.write(msg) loop.start(pyev.EVRUN_NOWAIT) rmsg = self.csock.recv(len(msg)) self.assertEqual(rmsg, msg)
class Connection(object): """Represents a connection to a server from a client.""" def __init__(self, loop, sock, addr, protocol, client): """Create a client connection.""" self.loop = loop self.sock = sock self.addr = addr self.protocol = protocol self.client = client logger.debug('making transport') self.transport = SocketTransport(self.loop, self.sock, self.protocol.data, self.closed) logger.debug('protocol.make_connection') self.protocol.make_connection(self.transport, self.addr) logger.debug('transport.start()') self.transport.start() logger.debug('transport started') def closed(self, reason): """Callback performed when the transport is closed.""" self.client.remove_connection(self) self.protocol.connection_lost(reason) if not isinstance(reason, ConnectionClosed): logger.warn("connection closed, reason {}".format(reason)) else: logger.info("connection closed") def close(self): """Close the connection.""" self.transport.close()
def __init__(self, loop, sock, address, protocol, server): """Create a server connection.""" self.loop = loop self.sock = sock self.address = address self.protocol = protocol self.server = server self.transport = SocketTransport(self.loop, self.sock, self.protocol.data, self.closed)
def test_buffered_write(self): t = SocketTransport(loop, self.ssock, self.read, self.close) count = 0 msg = b"hello" while t.write != t.buffered_write: count += 1 t.write(msg) t.write(msg) self.csock.recv(count * len(msg)) loop.start(pyev.EVRUN_NOWAIT) self.assertTrue(t.write == t.unbuffered_write)
def test_stop_buffered_write(self): t = SocketTransport(loop, self.ssock, self.read, self.close) count = 0 msg = b'hello' while (t.write != t.buffered_write): count += 1 t.write(msg) t.write(msg) t.stop() self.csock.recv(count * len(msg)) t.start() loop.start(pyev.EVRUN_NOWAIT) self.assertTrue(t.write == t.unbuffered_write)
def __init__(self, loop, sock, addr, protocol, client): """Create a client connection.""" self.loop = loop self.sock = sock self.addr = addr self.protocol = protocol self.client = client logger.debug('making transport') self.transport = SocketTransport(self.loop, self.sock, self.protocol.data, self.closed) logger.debug('protocol.make_connection') self.protocol.make_connection(self.transport, self.addr) logger.debug('transport.start()') self.transport.start() logger.debug('transport started')
def test_close_buffered_write(self): t = SocketTransport(loop, self.ssock, self.read, self.close) count = 0 msg = b'hello' while (t.write != t.buffered_write): count += 1 t.write(msg) t.write(msg) t.close() self.assertRaises(ConnectionClosed, t.write, msg)
def test_close_buffered_write(self): t = SocketTransport(loop, self.ssock, self.read, self.close) count = 0 msg = b"hello" while t.write != t.buffered_write: count += 1 t.write(msg) t.write(msg) t.close() self.assertRaises(ConnectionClosed, t.write, msg)
def __init__(self, loop, sock, addr, protocol, client): """Create a client connection.""" self.loop = loop self.sock = sock self.addr = addr self.protocol = protocol self.client = client logger.debug("making transport") self.transport = SocketTransport(self.loop, self.sock, self.protocol.data, self.closed) logger.debug("protocol.make_connection") self.protocol.make_connection(self.transport, self.addr) logger.debug("transport.start()") self.transport.start() logger.debug("transport started")
def test_closed_write(self): t = SocketTransport(loop, self.ssock, self.read, self.close) t.close() self.assertRaises(ConnectionClosed, t.write, ("hello"))
def test_close(self): t = SocketTransport(loop, self.ssock, self.read, self.close) t.close() self.assertTrue(t.closed) self.assertTrue(isinstance(self.reason, ConnectionClosed))
def test_creation(self): t = SocketTransport(loop, self.ssock, self.read, self.close)
def test_error(self): t = SocketTransport(loop, self.ssock, self.read, self.close) self.csock.close() t.write(b'hello') loop.start(pyev.EVRUN_NOWAIT) self.assertTrue(self.reason is not None)
def test_read(self): t = SocketTransport(loop, self.ssock, self.read, self.close) t.start() self.csock.send(b'hello') loop.start(pyev.EVRUN_NOWAIT) self.assertEqual(self.data, b'hello')
def test_closed_stop(self): t = SocketTransport(loop, self.ssock, self.read, self.close) t.close() self.assertRaises(ConnectionClosed, t.stop)
def test_read(self): t = SocketTransport(loop, self.ssock, self.read, self.close) t.start() self.csock.send(b"hello") loop.start(pyev.EVRUN_NOWAIT) self.assertEqual(self.data, b"hello")
def test_error(self): t = SocketTransport(loop, self.ssock, self.read, self.close) self.csock.close() t.write(b"hello") loop.start(pyev.EVRUN_NOWAIT) self.assertTrue(self.reason is not None)
def test_overflow_write(self): t = SocketTransport(loop, self.ssock, self.read, self.close) self.assertRaises(BufferOverflowError, t.write, bytes([1 for x in range(0, 1024 * 1024)]))
def test_stop(self): t = SocketTransport(loop, self.ssock, self.read, self.close) t.stop()