]> granicus.if.org Git - python/commitdiff
bpo-31174: Fix test_tools.test_unparse (GH-4102) (#4104)
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Tue, 24 Oct 2017 11:18:00 +0000 (04:18 -0700)
committerVictor Stinner <victor.stinner@gmail.com>
Tue, 24 Oct 2017 11:18:00 +0000 (04:18 -0700)
test_unparse.DirectoryTestCase now stores the names sample to always
test the same files. It prevents false alarms when hunting reference
leaks.
(cherry picked from commit 8e482bea21cb942804234e36d3c6c896aabd32da)

Lib/test/test_tools/test_unparse.py
Misc/NEWS.d/next/Tests/2017-10-24-11-36-10.bpo-31174.xCvXcr.rst [new file with mode: 0644]

index 65dee1b5ae4960e77dc7e698f3a3a6900457f76b..bab49df331258ebcca53c4e9c27dda54390fe8ea 100644 (file)
@@ -263,12 +263,14 @@ class UnparseTestCase(ASTTestCase):
 
 class DirectoryTestCase(ASTTestCase):
     """Test roundtrip behaviour on all files in Lib and Lib/test."""
+    NAMES = None
 
     # test directories, relative to the root of the distribution
     test_directories = 'Lib', os.path.join('Lib', 'test')
 
-    def test_files(self):
-        # get names of files to test
+    def get_names(self):
+        if DirectoryTestCase.NAMES is not None:
+            return DirectoryTestCase.NAMES
 
         names = []
         for d in self.test_directories:
@@ -280,6 +282,15 @@ class DirectoryTestCase(ASTTestCase):
         # Test limited subset of files unless the 'cpu' resource is specified.
         if not test.support.is_resource_enabled("cpu"):
             names = random.sample(names, 10)
+            # bpo-31174: Store the names sample to always test the same files.
+            # It prevents false alarms when hunting reference leaks.
+            DirectoryTestCase.NAMES = names
+
+        return names
+
+    def test_files(self):
+        # get names of files to test
+        names = self.get_names()
 
         for filename in names:
             if test.support.verbose:
diff --git a/Misc/NEWS.d/next/Tests/2017-10-24-11-36-10.bpo-31174.xCvXcr.rst b/Misc/NEWS.d/next/Tests/2017-10-24-11-36-10.bpo-31174.xCvXcr.rst
new file mode 100644 (file)
index 0000000..e098064
--- /dev/null
@@ -0,0 +1,3 @@
+Fix test_tools.test_unparse: DirectoryTestCase now stores the names sample
+to always test the same files. It prevents false alarms when hunting
+reference leaks.