[Python-checkins] cpython (merge 3.5 -> default): Issue #23788: Merge test_bad_address() cleanup from 3.5

martin.panter python-checkins at python.org
Wed Dec 16 00:27:22 EST 2015


https://hg.python.org/cpython/rev/16accac4b2f6
changeset:   99582:16accac4b2f6
parent:      99580:7f49af7046e4
parent:      99581:e81189f75d04
user:        Martin Panter <vadmium+py at gmail.com>
date:        Wed Dec 16 05:04:29 2015 +0000
summary:
  Issue #23788: Merge test_bad_address() cleanup from 3.5

files:
  Lib/test/test_urllib2_localnet.py |  29 -------------------
  Lib/test/test_urllibnet.py        |  26 +++++++++++++---
  2 files changed, 20 insertions(+), 35 deletions(-)


diff --git a/Lib/test/test_urllib2_localnet.py b/Lib/test/test_urllib2_localnet.py
--- a/Lib/test/test_urllib2_localnet.py
+++ b/Lib/test/test_urllib2_localnet.py
@@ -626,35 +626,6 @@
         url = open_url.geturl()
         self.assertEqual(url, "http://localhost:%s" % handler.port)
 
-    def test_bad_address(self):
-        # Make sure proper exception is raised when connecting to a bogus
-        # address.
-
-        # as indicated by the comment below, this might fail with some ISP,
-        # so we run the test only when -unetwork/-uall is specified to
-        # mitigate the problem a bit (see #17564)
-        support.requires('network')
-        self.assertRaises(OSError,
-                          # Given that both VeriSign and various ISPs have in
-                          # the past or are presently hijacking various invalid
-                          # domain name requests in an attempt to boost traffic
-                          # to their own sites, finding a domain name to use
-                          # for this test is difficult.  RFC2606 leads one to
-                          # believe that '.invalid' should work, but experience
-                          # seemed to indicate otherwise.  Single character
-                          # TLDs are likely to remain invalid, so this seems to
-                          # be the best choice. The trailing '.' prevents a
-                          # related problem: The normal DNS resolver appends
-                          # the domain names from the search path if there is
-                          # no '.' the end and, and if one of those domains
-                          # implements a '*' rule a result is returned.
-                          # However, none of this will prevent the test from
-                          # failing if the ISP hijacks all invalid domain
-                          # requests.  The real solution would be to be able to
-                          # parameterize the framework with a mock resolver.
-                          urllib.request.urlopen,
-                          "http://sadflkjsasf.i.nvali.d./")
-
     def test_iteration(self):
         expected_response = b"pycon 2008..."
         handler = self.start_server([(200, [], expected_response)])
diff --git a/Lib/test/test_urllibnet.py b/Lib/test/test_urllibnet.py
--- a/Lib/test/test_urllibnet.py
+++ b/Lib/test/test_urllibnet.py
@@ -113,7 +113,25 @@
     def test_bad_address(self):
         # Make sure proper exception is raised when connecting to a bogus
         # address.
-        bogus_domain = "sadflkjsasf.i.nvali.d"
+
+        # Given that both VeriSign and various ISPs have in
+        # the past or are presently hijacking various invalid
+        # domain name requests in an attempt to boost traffic
+        # to their own sites, finding a domain name to use
+        # for this test is difficult.  RFC2606 leads one to
+        # believe that '.invalid' should work, but experience
+        # seemed to indicate otherwise.  Single character
+        # TLDs are likely to remain invalid, so this seems to
+        # be the best choice. The trailing '.' prevents a
+        # related problem: The normal DNS resolver appends
+        # the domain names from the search path if there is
+        # no '.' the end and, and if one of those domains
+        # implements a '*' rule a result is returned.
+        # However, none of this will prevent the test from
+        # failing if the ISP hijacks all invalid domain
+        # requests.  The real solution would be to be able to
+        # parameterize the framework with a mock resolver.
+        bogus_domain = "sadflkjsasf.i.nvali.d."
         try:
             socket.gethostbyname(bogus_domain)
         except OSError:
@@ -128,11 +146,7 @@
                                'can be caused by a broken DNS server '
                                '(e.g. returns 404 or hijacks page)')
         with self.assertRaises(OSError, msg=failure_explanation):
-            # SF patch 809915:  In Sep 2003, VeriSign started highjacking
-            # invalid .com and .net addresses to boost traffic to their own
-            # site.  This test started failing then.  One hopes the .invalid
-            # domain will be spared to serve its defined purpose.
-            urllib.request.urlopen("http://sadflkjsasf.i.nvali.d/")
+            urllib.request.urlopen("http://{}/".format(bogus_domain))
 
 
 class urlretrieveNetworkTests(unittest.TestCase):

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


More information about the Python-checkins mailing list