From 699592498b6466d7e1a4eeb3ca969d088ec6ff30 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mike=20F=C3=A4hrmann?= Date: Thu, 2 May 2024 22:54:15 +0200 Subject: [PATCH] [tests] use random port number for local HTTP server MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit … and explicitly bind to 127.0.0.1 instead of all interfaces --- test/test_downloader.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/test/test_downloader.py b/test/test_downloader.py index f63b68a2..9f9fb3b8 100644 --- a/test/test_downloader.py +++ b/test/test_downloader.py @@ -174,9 +174,17 @@ class TestHTTPDownloader(TestDownloaderBase): TestDownloaderBase.setUpClass() cls.downloader = downloader.find("http")(cls.job) - port = 8088 - cls.address = "http://127.0.0.1:{}".format(port) - server = http.server.HTTPServer(("", port), HttpRequestHandler) + host = "127.0.0.1" + port = 0 # select random not-in-use port + + try: + server = http.server.HTTPServer((host, port), HttpRequestHandler) + except OSError as exc: + raise unittest.SkipTest( + "cannot spawn local HTTP server ({})".format(exc)) + + host, port = server.server_address + cls.address = "http://{}:{}".format(host, port) threading.Thread(target=server.serve_forever, daemon=True).start() def _run_test(self, ext, input, output,