diff options
author | Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> | 2017-10-24 11:18:00 (GMT) |
---|---|---|
committer | Victor Stinner <victor.stinner@gmail.com> | 2017-10-24 11:18:00 (GMT) |
commit | d8f78a1fbc0a34224289d436ad67f608fa553f0c (patch) | |
tree | 1499c1b2efc1c10890fd12ae5f4a064112a684a4 | |
parent | d7604f5d0621c23d037455acd682d0d489455d54 (diff) | |
download | cpython-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.py | 15 | ||||
-rw-r--r-- | Misc/NEWS.d/next/Tests/2017-10-24-11-36-10.bpo-31174.xCvXcr.rst | 3 |
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. |