summaryrefslogtreecommitdiff
path: root/tests/test_network.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test_network.py')
-rw-r--r--tests/test_network.py84
1 files changed, 0 insertions, 84 deletions
diff --git a/tests/test_network.py b/tests/test_network.py
deleted file mode 100644
index be0bebd..0000000
--- a/tests/test_network.py
+++ /dev/null
@@ -1,84 +0,0 @@
-import eventlet
-import tests
-socket = eventlet.patcher.original('socket')
-threading = eventlet.patcher.original('threading')
-
-class TcpEchoClientProtocol(tests.asyncio.Protocol):
- def __init__(self, message, loop):
- self.message = message
- self.loop = loop
- self.state = 'new'
- self.received = None
-
- def connection_made(self, transport):
- self.state = 'ping'
- transport.write(self.message)
-
- def data_received(self, data):
- self.state = 'pong'
- self.received = data
-
- def connection_lost(self, exc):
- self.state = 'closed'
- self.loop.stop()
-
-
-class TcpServer(threading.Thread):
- def __init__(self, host, port, event):
- super(TcpServer, self).__init__()
- self.host = host
- self.port = port
- self.event = event
- self.sock = None
- self.client = None
-
- def run(self):
- sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
- self.sock = sock
- try:
- sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
- sock.bind((self.host, self.port))
- sock.listen(1)
-
- self.event.set()
- client, addr = sock.accept()
- self.client = client
- try:
- message = client.recv(100)
- client.sendall(message)
- finally:
- client.close()
- self.client = None
- finally:
- sock.close()
- self.sock = None
-
- def stop(self):
- self.join()
-
-
-class NetworkTests(tests.TestCase):
- def test_tcp_hello(self):
- port = 8888
- host = '127.0.0.1'
- message = b'Hello World!'
-
- event = threading.Event()
- server = TcpServer(host, port, event)
- server.start()
- self.addCleanup(server.stop)
- event.wait()
-
- proto = TcpEchoClientProtocol(message, self.loop)
- coro = self.loop.create_connection(lambda: proto, host, port)
- self.loop.run_until_complete(coro)
- self.assertNotEqual(proto.state, 'new')
-
- self.loop.run_forever()
- self.assertEqual(proto.state, 'closed')
- self.assertEqual(proto.received, message)
-
-
-if __name__ == '__main__':
- import unittest
- unittest.main()