[Python-checkins] cpython: Issue #12804: Fix test failures on systems without internet access.

nadeem.vawda python-checkins at python.org
Wed Jan 25 07:44:45 CET 2012


http://hg.python.org/cpython/rev/585d3664da89
changeset:   74607:585d3664da89
user:        Nadeem Vawda <nadeem.vawda at gmail.com>
date:        Wed Jan 25 08:02:05 2012 +0200
summary:
  Issue #12804: Fix test failures on systems without internet access.

files:
  Lib/test/test_socket.py     |   6 ++++++
  Lib/test/test_urllib2net.py |  13 +++++++------
  Misc/NEWS                   |   3 +++
  3 files changed, 16 insertions(+), 6 deletions(-)


diff --git a/Lib/test/test_socket.py b/Lib/test/test_socket.py
--- a/Lib/test/test_socket.py
+++ b/Lib/test/test_socket.py
@@ -1168,6 +1168,12 @@
     @unittest.skipUnless(support.is_resource_enabled('network'),
                          'network is not enabled')
     def test_idna(self):
+        # Check for internet access before running test (issue #12804).
+        try:
+            socket.gethostbyname('python.org')
+        except socket.gaierror as e:
+            if e.errno == socket.EAI_NODATA:
+                self.skipTest('internet access required for this test')
         # these should all be successful
         socket.gethostbyname('испытание.python.org')
         socket.gethostbyname_ex('испытание.python.org')
diff --git a/Lib/test/test_urllib2net.py b/Lib/test/test_urllib2net.py
--- a/Lib/test/test_urllib2net.py
+++ b/Lib/test/test_urllib2net.py
@@ -83,12 +83,13 @@
     def test_close(self):
         # calling .close() on urllib2's response objects should close the
         # underlying socket
-
-        response = _urlopen_with_retry("http://www.python.org/")
-        sock = response.fp
-        self.assertTrue(not sock.closed)
-        response.close()
-        self.assertTrue(sock.closed)
+        url = "http://www.python.org/"
+        with support.transient_internet(url):
+            response = _urlopen_with_retry(url)
+            sock = response.fp
+            self.assertTrue(not sock.closed)
+            response.close()
+            self.assertTrue(sock.closed)
 
 class OtherNetworkTests(unittest.TestCase):
     def setUp(self):
diff --git a/Misc/NEWS b/Misc/NEWS
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -461,6 +461,9 @@
 Library
 -------
 
+- Issue #12804: Fix test_socket and test_urllib2net failures when running tests
+  on a system without internet access.
+
 - Issue #13772: In os.symlink() under Windows, do not try to guess the link
   target's type (file or directory).  The detection was buggy and made the
   call non-atomic (therefore prone to race conditions).

-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list