mirror of https://github.com/python/cpython
bpo-39003: Make sure all test are the same when using -R in test_unparse (GH-17537)
This commit is contained in:
parent
c18b805ac6
commit
ac229116a3
|
@ -288,15 +288,17 @@ class DirectoryTestCase(ASTTestCase):
|
||||||
test_directories = (lib_dir, lib_dir / "test")
|
test_directories = (lib_dir, lib_dir / "test")
|
||||||
skip_files = {"test_fstring.py"}
|
skip_files = {"test_fstring.py"}
|
||||||
|
|
||||||
@functools.cached_property
|
_files_to_test = None
|
||||||
def files_to_test(self):
|
|
||||||
# bpo-31174: Use cached_property to store the names sample
|
@classmethod
|
||||||
# to always test the same files. It prevents false alarms
|
def files_to_test(cls):
|
||||||
# when hunting reference leaks.
|
|
||||||
|
if cls._files_to_test is not None:
|
||||||
|
return cls._files_to_test
|
||||||
|
|
||||||
items = [
|
items = [
|
||||||
item.resolve()
|
item.resolve()
|
||||||
for directory in self.test_directories
|
for directory in cls.test_directories
|
||||||
for item in directory.glob("*.py")
|
for item in directory.glob("*.py")
|
||||||
if not item.name.startswith("bad")
|
if not item.name.startswith("bad")
|
||||||
]
|
]
|
||||||
|
@ -304,10 +306,15 @@ class DirectoryTestCase(ASTTestCase):
|
||||||
# Test limited subset of files unless the 'cpu' resource is specified.
|
# Test limited subset of files unless the 'cpu' resource is specified.
|
||||||
if not test.support.is_resource_enabled("cpu"):
|
if not test.support.is_resource_enabled("cpu"):
|
||||||
items = random.sample(items, 10)
|
items = random.sample(items, 10)
|
||||||
|
|
||||||
|
# bpo-31174: Store the names sample to always test the same files.
|
||||||
|
# It prevents false alarms when hunting reference leaks.
|
||||||
|
cls._files_to_test = items
|
||||||
|
|
||||||
return items
|
return items
|
||||||
|
|
||||||
def test_files(self):
|
def test_files(self):
|
||||||
for item in self.files_to_test:
|
for item in self.files_to_test():
|
||||||
if test.support.verbose:
|
if test.support.verbose:
|
||||||
print(f"Testing {item.absolute()}")
|
print(f"Testing {item.absolute()}")
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue