]> granicus.if.org Git - python/commitdiff
Merged revisions 80522 via svnmerge from
authorAntoine Pitrou <solipsis@pitrou.net>
Tue, 27 Apr 2010 08:53:36 +0000 (08:53 +0000)
committerAntoine Pitrou <solipsis@pitrou.net>
Tue, 27 Apr 2010 08:53:36 +0000 (08:53 +0000)
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r80522 | antoine.pitrou | 2010-04-27 10:40:51 +0200 (mar., 27 avril 2010) | 3 lines

  Remove uses of find_unused_port() in test_ssl, and small cleanups
........

Lib/test/test_ssl.py

index 3c03b59d5a5e6e3db53b1d41c26a921320c3d3d5..113b30883bcb07515d5e2a101798f55c77b1af25 100644 (file)
@@ -587,9 +587,9 @@ else:
             self.flag = None
             self.active = False
             self.RootedHTTPRequestHandler.root = os.path.split(CERTFILE)[0]
-            self.port = support.find_unused_port()
             self.server = self.HTTPSServer(
-                (HOST, self.port), self.RootedHTTPRequestHandler, certfile)
+                (HOST, 0), self.RootedHTTPRequestHandler, certfile)
+            self.port = self.server.server_port
             threading.Thread.__init__(self)
             self.daemon = True
 
@@ -670,12 +670,11 @@ else:
                 def handle_error(self):
                     raise
 
-            def __init__(self, port, certfile):
-                self.port = port
+            def __init__(self, certfile):
                 self.certfile = certfile
-                asyncore.dispatcher.__init__(self)
-                self.create_socket(socket.AF_INET, socket.SOCK_STREAM)
-                self.bind(('', port))
+                sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+                self.port = support.bind_port(sock, '')
+                asyncore.dispatcher.__init__(self, sock)
                 self.listen(5)
 
             def handle_accept(self):
@@ -690,8 +689,8 @@ else:
         def __init__(self, certfile):
             self.flag = None
             self.active = False
-            self.port = support.find_unused_port()
-            self.server = self.EchoServer(self.port, certfile)
+            self.server = self.EchoServer(certfile)
+            self.port = self.server.port
             threading.Thread.__init__(self)
             self.daemon = True
 
@@ -925,38 +924,39 @@ else:
 
             listener_ready = threading.Event()
             listener_gone = threading.Event()
-            port = support.find_unused_port()
+            s = socket.socket()
+            port = support.bind_port(s, HOST)
 
-            # `listener` runs in a thread.  It opens a socket listening on
-            # PORT, and sits in an accept() until the main thread connects.
-            # Then it rudely closes the socket, and sets Event `listener_gone`
-            # to let the main thread know the socket is gone.
+            # `listener` runs in a thread.  It sits in an accept() until
+            # the main thread connects.  Then it rudely closes the socket,
+            # and sets Event `listener_gone` to let the main thread know
+            # the socket is gone.
             def listener():
-                s = socket.socket()
-                s.bind((HOST, port))
                 s.listen(5)
                 listener_ready.set()
                 s.accept()
-                s = None # reclaim the socket object, which also closes it
+                s.close()
                 listener_gone.set()
 
             def connector():
                 listener_ready.wait()
-                s = socket.socket()
-                s.connect((HOST, port))
+                c = socket.socket()
+                c.connect((HOST, port))
                 listener_gone.wait()
                 try:
-                    ssl_sock = ssl.wrap_socket(s)
+                    ssl_sock = ssl.wrap_socket(c)
                 except IOError:
                     pass
                 else:
-                    raise support.TestFailed(
+                    raise test_support.TestFailed(
                           'connecting to closed SSL socket should have failed')
 
             t = threading.Thread(target=listener)
             t.start()
-            connector()
-            t.join()
+            try:
+                connector()
+            finally:
+                t.join()
 
         def testProtocolSSL2(self):
             if support.verbose: