gh-126014: test_makefile_test_folders: Ignore basically-empty directories (GH-140466)
The code in test_makefile was attempting to ignore any
non-interesting files, but missed some corners:
1. There is never a *file* called `__pycache__`.
2. A directory containing only a `__pycache__` subdirectory should be
ignored.
3. A directory containing only hidden files should be ignored.
Simplify this all into a couple of filters that let us check for empty
lists.
(cherry picked from commit
17d447e993a0ff9b7d44786ceb2a8f9510638bfa)
Co-authored-by: Stefano Rivera <stefano@rivera.za.net>
if dirname == '__pycache__' or dirname.startswith('.'):
dirs.clear() # do not process subfolders
continue
- # Skip empty dirs:
+
+ # Skip empty dirs (ignoring hidden files and __pycache__):
+ files = [
+ filename for filename in files
+ if not filename.startswith('.')
+ ]
+ dirs = [
+ dirname for dirname in dirs
+ if not dirname.startswith('.') and dirname != "__pycache__"
+ ]
if not dirs and not files:
continue
- # Skip dirs with hidden-only files:
- if files and all(
- filename.startswith('.') or filename == '__pycache__'
- for filename in files
- ):
- continue
relpath = os.path.relpath(dirpath, support.STDLIB_DIR)
with self.subTest(relpath=relpath):