diff --git a/.travis.yml b/.travis.yml index f1d2014..64d76b0 100644 --- a/.travis.yml +++ b/.travis.yml @@ -12,6 +12,6 @@ install: - "pip install -e ." - "pip install 'coverage>=3.7,<3.8' coveralls" script: - - "python ./setup.py nosetests" + - "PYTHONFAULTHANDLER=x timeout -sABRT 30s nosetests -vsd" after_success: - coveralls diff --git a/tests/mockserver.py b/tests/mockserver.py index c160095..b385d0e 100644 --- a/tests/mockserver.py +++ b/tests/mockserver.py @@ -16,13 +16,15 @@ class MockRecvServer(threading.Thread): """ Single threaded server accepts one connection and recv until EOF. """ - def __init__(self, host='localhost', port=24224): + def __init__(self, host='localhost', port=0): if host.startswith('unix://'): self._sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) self._sock.bind(host[len('unix://'):]) else: self._sock = socket.socket() self._sock.bind((host, port)) + self.port = self._sock.getsockname()[1] + self._sock.listen(1) self._buf = BytesIO() threading.Thread.__init__(self) @@ -30,7 +32,6 @@ def __init__(self, host='localhost', port=24224): def run(self): sock = self._sock - sock.listen(1) con, _ = sock.accept() while True: data = con.recv(4096) diff --git a/tests/test_handler.py b/tests/test_handler.py index 9e4e84f..91bffb4 100644 --- a/tests/test_handler.py +++ b/tests/test_handler.py @@ -11,13 +11,8 @@ class TestHandler(unittest.TestCase): def setUp(self): super(TestHandler, self).setUp() - for port in range(10000, 20000): - try: - self._server = mockserver.MockRecvServer('localhost', port) - self._port = port - break - except IOError: - pass + self._server = mockserver.MockRecvServer('localhost') + self._port = self._server.port def get_data(self): return self._server.get_recieved() diff --git a/tests/test_sender.py b/tests/test_sender.py index 6d73518..31f3403 100644 --- a/tests/test_sender.py +++ b/tests/test_sender.py @@ -41,13 +41,9 @@ def test_tolerant(self): class TestSender(unittest.TestCase): def setUp(self): super(TestSender, self).setUp() - for port in range(10000, 20000): - try: - self._server = mockserver.MockRecvServer('localhost', port) - break - except IOError as exc: - print(exc) - self._sender = fluent.sender.FluentSender(tag='test', port=port) + self._server = mockserver.MockRecvServer('localhost') + self._sender = fluent.sender.FluentSender(tag='test', + port=self._server.port) def get_data(self): return self._server.get_recieved()