summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>2017-10-24 11:18:00 (GMT)
committerVictor Stinner <victor.stinner@gmail.com>2017-10-24 11:18:00 (GMT)
commitd8f78a1fbc0a34224289d436ad67f608fa553f0c (patch)
tree1499c1b2efc1c10890fd12ae5f4a064112a684a4
parentd7604f5d0621c23d037455acd682d0d489455d54 (diff)
downloadcpython-d8f78a1fbc0a34224289d436ad67f608fa553f0c.zip
cpython-d8f78a1fbc0a34224289d436ad67f608fa553f0c.tar.gz
cpython-d8f78a1fbc0a34224289d436ad67f608fa553f0c.tar.bz2
bpo-31174: Fix test_tools.test_unparse (GH-4102) (#4104)
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)
-rw-r--r--Lib/test/test_tools/test_unparse.py15
-rw-r--r--Misc/NEWS.d/next/Tests/2017-10-24-11-36-10.bpo-31174.xCvXcr.rst3
2 files changed, 16 insertions, 2 deletions
diff --git a/Lib/test/test_tools/test_unparse.py b/Lib/test/test_tools/test_unparse.py
index 65dee1b..bab49df 100644
--- a/Lib/test/test_tools/test_unparse.py
+++ b/Lib/test/test_tools/test_unparse.py
@@ -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
index 0000000..e098064
--- /dev/null
+++ b/Misc/NEWS.d/next/Tests/2017-10-24-11-36-10.bpo-31174.xCvXcr.rst
@@ -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.