]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Issue #18792: Use "127.0.0.1" or "::1" instead of "localhost" as much as possible...
authorAntoine Pitrou <solipsis@pitrou.net>
Wed, 21 Aug 2013 22:39:46 +0000 (00:39 +0200)
committerAntoine Pitrou <solipsis@pitrou.net>
Wed, 21 Aug 2013 22:39:46 +0000 (00:39 +0200)
Lib/test/support/__init__.py
Lib/test/test_asyncore.py
Lib/test/test_ftplib.py
Lib/test/test_multiprocessing.py
Lib/test/test_timeout.py
Misc/NEWS

index 0b3bd68299efb6522d1c1cf4b8a9824ddba2da3d..1c6ee0300be8f5312d71b8977f6a711e6dfc352e 100644 (file)
@@ -479,7 +479,11 @@ def requires_mac_ver(*min_version):
     return decorator
 
 
-HOST = 'localhost'
+# Don't use "localhost", since resolving it uses the DNS under recent
+# Windows versions (see issue #18792).
+HOST = "127.0.0.1"
+HOSTv6 = "::1"
+
 
 def find_unused_port(family=socket.AF_INET, socktype=socket.SOCK_STREAM):
     """Returns an unused port that should be suitable for binding.  This is
index 878b26cb7153c7087a08c2beb5d10ed70723344c..5d0632ef262dee0ee83624d62df0e5035f294dda 100644 (file)
@@ -10,7 +10,7 @@ import errno
 import struct
 
 from test import support
-from test.support import TESTFN, run_unittest, unlink
+from test.support import TESTFN, run_unittest, unlink, HOST, HOSTv6
 from io import BytesIO
 from io import StringIO
 
@@ -19,8 +19,6 @@ try:
 except ImportError:
     threading = None
 
-HOST = support.HOST
-
 HAS_UNIX_SOCKETS = hasattr(socket, 'AF_UNIX')
 
 class dummysocket:
@@ -809,7 +807,7 @@ class TestAPI_UseIPv4Sockets(BaseTestAPI):
 @unittest.skipUnless(support.IPV6_ENABLED, 'IPv6 support required')
 class TestAPI_UseIPv6Sockets(BaseTestAPI):
     family = socket.AF_INET6
-    addr = ('::1', 0)
+    addr = (HOSTv6, 0)
 
 @unittest.skipUnless(HAS_UNIX_SOCKETS, 'Unix sockets required')
 class TestAPI_UseUnixSockets(BaseTestAPI):
index 3a990420178b0192f676bd96e6c94a9daec235df..b39d753d4def113249e691a9916f6eea8d9b13f2 100644 (file)
@@ -18,7 +18,7 @@ except ImportError:
 
 from unittest import TestCase
 from test import support
-from test.support import HOST
+from test.support import HOST, HOSTv6
 threading = support.import_module('threading')
 
 # the dummy data returned by server over the data channel when
@@ -766,7 +766,7 @@ class TestFTPClass(TestCase):
 class TestIPv6Environment(TestCase):
 
     def setUp(self):
-        self.server = DummyFTPServer(('::1', 0), af=socket.AF_INET6)
+        self.server = DummyFTPServer((HOSTv6, 0), af=socket.AF_INET6)
         self.server.start()
         self.client = ftplib.FTP()
         self.client.connect(self.server.host, self.server.port)
@@ -949,7 +949,7 @@ class TestTimeouts(TestCase):
         self.assertTrue(socket.getdefaulttimeout() is None)
         socket.setdefaulttimeout(30)
         try:
-            ftp = ftplib.FTP("localhost")
+            ftp = ftplib.FTP(HOST)
         finally:
             socket.setdefaulttimeout(None)
         self.assertEqual(ftp.sock.gettimeout(), 30)
@@ -961,7 +961,7 @@ class TestTimeouts(TestCase):
         self.assertTrue(socket.getdefaulttimeout() is None)
         socket.setdefaulttimeout(30)
         try:
-            ftp = ftplib.FTP("localhost", timeout=None)
+            ftp = ftplib.FTP(HOST, timeout=None)
         finally:
             socket.setdefaulttimeout(None)
         self.assertTrue(ftp.sock.gettimeout() is None)
index aa985e30bb084b6df8171a0e411498cf7a4024cd..576096959810c92923064d3a285288967d589c4c 100644 (file)
@@ -1968,7 +1968,7 @@ class _TestRemoteManager(BaseTestCase):
         authkey = os.urandom(32)
 
         manager = QueueManager(
-            address=('localhost', 0), authkey=authkey, serializer=SERIALIZER
+            address=(test.support.HOST, 0), authkey=authkey, serializer=SERIALIZER
             )
         manager.start()
 
@@ -2006,7 +2006,7 @@ class _TestManagerRestart(BaseTestCase):
     def test_rapid_restart(self):
         authkey = os.urandom(32)
         manager = QueueManager(
-            address=('localhost', 0), authkey=authkey, serializer=SERIALIZER)
+            address=(test.support.HOST, 0), authkey=authkey, serializer=SERIALIZER)
         srvr = manager.get_server()
         addr = srvr.address
         # Close the connection.Listener socket which gets opened as a part
@@ -2478,7 +2478,7 @@ class _TestPicklingConnections(BaseTestCase):
             l.close()
 
         l = socket.socket()
-        l.bind(('localhost', 0))
+        l.bind((test.support.HOST, 0))
         l.listen(1)
         conn.send(l.getsockname())
         new_conn, addr = l.accept()
@@ -3235,9 +3235,9 @@ class TestWait(unittest.TestCase):
     def test_wait_socket(self, slow=False):
         from multiprocessing.connection import wait
         l = socket.socket()
-        l.bind(('', 0))
+        l.bind((test.support.HOST, 0))
         l.listen(4)
-        addr = ('localhost', l.getsockname()[1])
+        addr = l.getsockname()
         readers = []
         procs = []
         dic = {}
index bfd2a5c522f9d3062330e26c87513dba0f3ce41e..dcf201b5072325a0ba2cba42ea6dee701e252bf2 100644 (file)
@@ -110,7 +110,7 @@ class TimeoutTestCase(unittest.TestCase):
     # solution.
     fuzz = 2.0
 
-    localhost = '127.0.0.1'
+    localhost = support.HOST
 
     def setUp(self):
         raise NotImplementedError()
index be3e8e0ae93e4d6c54a968cfa56e1aed44cd341f..d13b3579437b650b66714c6ba225dfaffa3544c6 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -289,6 +289,10 @@ IDLE
 Tests
 -----
 
+- Issue #18792: Use "127.0.0.1" or "::1" instead of "localhost" as much as
+  possible, since "localhost" goes through a DNS lookup under recent Windows
+  versions.
+
 - Issue #1666318: Add a test that shutil.copytree() retains directory
   permissions.  Patch by Catherine Devlin.