]> granicus.if.org Git - python/commitdiff
[3.5] bpo-29887: Test normalization now fails if download fails (GH-905) (#2272)
authorMariatta <Mariatta@users.noreply.github.com>
Tue, 20 Jun 2017 06:31:11 +0000 (23:31 -0700)
committerVictor Stinner <victor.stinner@gmail.com>
Tue, 20 Jun 2017 06:31:11 +0000 (08:31 +0200)
* [3.5] bpo-29887: Test normalization now fails if download fails (GH-905)

* test_normalization fails if download fails

bpo-29887. The test is still skipped if "-u urlfetch" option is not
passed to regrtest (python3 -m test -u urlfetch test_normalization).

* Fix ResourceWarning in test_normalization

bpo-29887: Fix ResourceWarning in test_normalization if tests are
interrupted by CTRL+c.
(cherry picked from commit 722a3af092b94983aa26f5e591fb1b45e2c2a0ff)

* bpo-29887: test_normalization handles PermissionError (#1196)

Skip test_normalization.test_main() if download raises a permission
error.
(cherry picked from commit d13d54748d3a7db023d9db37223ea7d40bb8f8e3)

* no f-strings :(

Lib/test/test_normalization.py

index 30fa612645a386e22e87d6239f0086c41f612d18..40d58943adb35363e72f98b66257262ea685d2f8 100644 (file)
@@ -37,15 +37,23 @@ def unistr(data):
 
 class NormalizationTest(unittest.TestCase):
     def test_main(self):
-        part = None
-        part1_data = {}
         # Hit the exception early
         try:
             testdata = open_urlresource(TESTDATAURL, encoding="utf-8",
                                         check=check_version)
+        except PermissionError:
+            self.skipTest("Permission error when downloading %s "
+                          "into the test data directory" % TESTDATAURL)
         except (OSError, HTTPException):
-            self.skipTest("Could not retrieve " + TESTDATAURL)
-        self.addCleanup(testdata.close)
+            self.fail("Could not retrieve %s" % TESTDATAURL)
+
+        with testdata:
+            self.run_normalization_tests(testdata)
+
+    def run_normalization_tests(self, testdata):
+        part = None
+        part1_data = {}
+
         for line in testdata:
             if '#' in line:
                 line = line.split('#')[0]