[Python-checkins] cpython (3.3): #18206: Fix test for existence of license URL.

r.david.murray python-checkins at python.org
Sat Sep 14 19:32:13 CEST 2013


http://hg.python.org/cpython/rev/7c18b799841e
changeset:   85698:7c18b799841e
branch:      3.3
parent:      85696:1aef1b265f73
user:        R David Murray <rdmurray at bitdance.com>
date:        Sat Sep 14 13:28:37 2013 -0400
summary:
  #18206: Fix test for existence of license URL.

It now always checks, instead of only when the LICENSE file doesn't exist.  It
is also protected by the 'network' resource, and uses a HEAD request since we
are only doing an existence check.

files:
  Lib/test/test_site.py |  40 ++++++++++++------------------
  1 files changed, 16 insertions(+), 24 deletions(-)


diff --git a/Lib/test/test_site.py b/Lib/test/test_site.py
--- a/Lib/test/test_site.py
+++ b/Lib/test/test_site.py
@@ -13,6 +13,8 @@
 import sys
 import re
 import encodings
+import urllib.request
+import urllib.error
 import subprocess
 import sysconfig
 from copy import copy
@@ -407,30 +409,20 @@
             else:
                 self.fail("sitecustomize not imported automatically")
 
+    @test.support.requires_resource('network')
+    def test_license_exists_at_url(self):
+        # This test is a bit fragile since it depends on the format of the
+        # string displayed by license in the absence of a LICENSE file.
+        url = license._Printer__data.split()[1]
+        req = urllib.request.Request(url, method='HEAD')
+        try:
+            with test.support.transient_internet(url):
+                with urllib.request.urlopen(req) as data:
+                    code = data.getcode()
+        except urllib.error.HTTPError as e:
+            code = e.code
+        self.assertEqual(code, 200, msg="Can't find " + url)
 
-class LicenseURL(unittest.TestCase):
-    """Test accessibility of the license."""
-
-    @unittest.skipUnless(str(license).startswith('See http://'),
-                         'license is available as a file')
-    def test_license_page(self):
-        """urlopen should return the license page"""
-        pat = r'^See (http://www\.python\.org/download/releases/[^/]+/license/)$'
-        mo = re.search(pat, str(license))
-        self.assertIsNotNone(mo, msg='can\'t find appropriate url in license')
-        if mo is not None:
-            url = mo.group(1)
-            with test.support.transient_internet(url):
-                import urllib.request, urllib.error
-                try:
-                    with urllib.request.urlopen(url) as data:
-                        code = data.getcode()
-                except urllib.error.HTTPError as e:
-                    code = e.code
-                self.assertEqual(code, 200, msg=url)
-
-def test_main():
-    run_unittest(HelperFunctionsTests, ImportSideEffectTests, LicenseURL)
 
 if __name__ == "__main__":
-    test_main()
+    unittest.main()

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


More information about the Python-checkins mailing list