changeset 8257:3630246c5c36

test: issue2551366. fix probe for open port in test_liveserver.py Corrected the method. It was missing the outer loop. Updated upstream.
author John Rouillard <rouilj@ieee.org>
date Wed, 01 Jan 2025 19:41:45 -0500
parents 3a04ff6f1004
children 5c5723cd721a
files test/wsgi_liveserver.py
diffstat 1 files changed, 19 insertions(+), 14 deletions(-) [+]
line wrap: on
line diff
--- a/test/wsgi_liveserver.py	Wed Jan 01 17:51:05 2025 -0500
+++ b/test/wsgi_liveserver.py	Wed Jan 01 19:41:45 2025 -0500
@@ -13,7 +13,7 @@
 import socket
 import threading
 import unittest
-from wsgiref.simple_server import make_server, WSGIRequestHandler
+from wsgiref.simple_server import WSGIRequestHandler, make_server
 
 __author__ = 'John Kristensen'
 __version__ = '0.3.1'
@@ -23,6 +23,7 @@
 Classmethod probe_ports() added by John Rouillard 2024.
 """
 
+
 class QuietHandler(WSGIRequestHandler):
     def log_request(*args, **kwargs):
         pass
@@ -89,17 +90,21 @@
 
     @classmethod
     def probe_ports(cls, start=port_range[0], end=port_range[1]):
-        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
-        s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
+
         port = start
-        try:
-            s.connect(('127.0.0.1', port))
-        except socket.error as e:
-            if not hasattr(e, 'args') or e.args[0] != errno.ECONNREFUSED:
-                raise
-            return port
-        else:
-            s.close()
-            port += 1
-            if port > end:
-                return None
+
+        while port <= end:
+            s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+            s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
+
+            try:
+                s.connect(('127.0.0.1', port))
+            except socket.error as e:
+                if not hasattr(e, 'args') or e.args[0] != errno.ECONNREFUSED:
+                    raise
+                return port
+            else:
+                s.close()
+                port += 1
+
+        return None

Roundup Issue Tracker: http://roundup-tracker.org/