diff options
author | Senthil Kumaran <senthil@uthcode.com> | 2013-09-07 20:59:17 (GMT) |
---|---|---|
committer | Senthil Kumaran <senthil@uthcode.com> | 2013-09-07 20:59:17 (GMT) |
commit | 8ef519b24f61d6e4307a4886920482c30f93aa7a (patch) | |
tree | 657ceb5435caf944ff113fe82dc8e74f035a52d3 /Lib | |
parent | 1b90227c0dbf69048653ef4fc70570bc6399781d (diff) | |
download | cpython-8ef519b24f61d6e4307a4886920482c30f93aa7a.zip cpython-8ef519b24f61d6e4307a4886920482c30f93aa7a.tar.gz cpython-8ef519b24f61d6e4307a4886920482c30f93aa7a.tar.bz2 |
Fix License URL display and add test to check for license url presence.
Fixes issue #18206 Patch contributed by Berker Peksag and py.user
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/site.py | 3 | ||||
-rw-r--r-- | Lib/test/test_site.py | 28 |
2 files changed, 28 insertions, 3 deletions
diff --git a/Lib/site.py b/Lib/site.py index 13e7336..7e09701 100644 --- a/Lib/site.py +++ b/Lib/site.py @@ -451,7 +451,8 @@ def setcopyright(): for supporting Python development. See www.python.org for more information.""") here = os.path.dirname(os.__file__) builtins.license = _Printer( - "license", "See http://www.python.org/%.3s/license.html" % sys.version, + "license", + "See http://www.python.org/download/releases/%.5s/license/" % sys.version, ["LICENSE.txt", "LICENSE"], [os.path.join(here, os.pardir), here, os.curdir]) diff --git a/Lib/test/test_site.py b/Lib/test/test_site.py index 29286c7..2392d43 100644 --- a/Lib/test/test_site.py +++ b/Lib/test/test_site.py @@ -5,6 +5,7 @@ executing have not been removed. """ import unittest +import test.support from test.support import run_unittest, TESTFN, EnvironmentVarGuard from test.support import captured_stderr import builtins @@ -377,9 +378,10 @@ class ImportSideEffectTests(unittest.TestCase): self.assertTrue(hasattr(builtins, "exit")) def test_setting_copyright(self): - # 'copyright' and 'credits' should be in builtins + # 'copyright', 'credits', and 'license' should be in builtins self.assertTrue(hasattr(builtins, "copyright")) self.assertTrue(hasattr(builtins, "credits")) + self.assertTrue(hasattr(builtins, "license")) def test_setting_help(self): # 'help' should be set in builtins @@ -405,8 +407,30 @@ class ImportSideEffectTests(unittest.TestCase): else: self.fail("sitecustomize not imported automatically") + +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) + run_unittest(HelperFunctionsTests, ImportSideEffectTests, LicenseURL) if __name__ == "__main__": test_main() |