]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Issue #7857: test_logging: listener test now uses find_unused_port().
authorVinay Sajip <vinay_sajip@yahoo.co.uk>
Fri, 5 Feb 2010 14:52:05 +0000 (14:52 +0000)
committerVinay Sajip <vinay_sajip@yahoo.co.uk>
Fri, 5 Feb 2010 14:52:05 +0000 (14:52 +0000)
Lib/test/test_logging.py

index 9b410e9a7e18ff98dfec13ee23a9607d6ff3ee1c..7453672bffa38e34ef19802d3cd31aa7a428f461 100644 (file)
@@ -40,7 +40,8 @@ import string
 import struct
 import sys
 import tempfile
-from test.test_support import captured_stdout, run_with_locale, run_unittest
+from test.test_support import captured_stdout, run_with_locale, run_unittest,\
+     find_unused_port
 import textwrap
 import threading
 import time
@@ -1573,24 +1574,25 @@ class ConfigDictTest(BaseTest):
         self.test_config1_ok(self.config11)
 
     def setup_via_listener(self, text):
-        PORT = 9030
-        t = logging.config.listen(PORT)
+        port = find_unused_port()
+        t = logging.config.listen(port)
         t.start()
-
-        sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
-        sock.connect(('localhost', PORT))
-
-        slen = struct.pack('>L', len(text))
-        s = slen + text
-        sentsofar = 0
-        left = len(s)
-        while left > 0:
-            sent = sock.send(s[sentsofar:])
-            sentsofar += sent
-            left -= sent
-        sock.close()
-        logging.config.stopListening()
-        t.join()
+        try:
+            sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+            sock.connect(('localhost', port))
+
+            slen = struct.pack('>L', len(text))
+            s = slen + text
+            sentsofar = 0
+            left = len(s)
+            while left > 0:
+                sent = sock.send(s[sentsofar:])
+                sentsofar += sent
+                left -= sent
+            sock.close()
+        finally:
+            logging.config.stopListening()
+            t.join()
 
     def test_listen_config_10_ok(self):
         with captured_stdout() as output: