bpo-38870: Run always tests that heavily use grammar features in test_unparse (GH-17738)
diff --git a/Lib/test/test_unparse.py b/Lib/test/test_unparse.py
index 45d819f..3e79686 100644
--- a/Lib/test/test_unparse.py
+++ b/Lib/test/test_unparse.py
@@ -285,6 +285,8 @@
lib_dir = pathlib.Path(__file__).parent / ".."
test_directories = (lib_dir, lib_dir / "test")
skip_files = {"test_fstring.py"}
+ run_always_files = {"test_grammar.py", "test_syntax.py", "test_compile.py",
+ "test_ast.py", "test_asdl_parser.py"}
_files_to_test = None
@@ -301,9 +303,17 @@
if not item.name.startswith("bad")
]
+ tests_to_run_always = {item for item in items if
+ item.name in cls.run_always_files}
+
# Test limited subset of files unless the 'cpu' resource is specified.
if not test.support.is_resource_enabled("cpu"):
- items = random.sample(items, 10)
+ items = set(random.sample(items, 10))
+
+ # Make sure that at least tests that heavily use grammar features are
+ # considered to reduce the change of missing something.
+
+ items = list(items | tests_to_run_always)
# bpo-31174: Store the names sample to always test the same files.
# It prevents false alarms when hunting reference leaks.