gh-109402: Fix regrtest findtests() (#109403)

Check for the full module name in SPLITTESTDIRS, not the relative
module name.
This commit is contained in:
Victor Stinner 2023-09-14 15:15:42 +02:00 committed by GitHub
parent d7a27e527d
commit 9ccd2e6aee
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -38,14 +38,19 @@ def findtests(*, testdir: StrPath | None = None, exclude=(),
mod, ext = os.path.splitext(name)
if (not mod.startswith("test_")) or (mod in exclude):
continue
if mod in split_test_dirs:
if base_mod:
fullname = f"{base_mod}.{mod}"
else:
fullname = mod
if fullname in split_test_dirs:
subdir = os.path.join(testdir, mod)
mod = f"{base_mod or 'test'}.{mod}"
if not base_mod:
fullname = f"test.{mod}"
tests.extend(findtests(testdir=subdir, exclude=exclude,
split_test_dirs=split_test_dirs,
base_mod=mod))
base_mod=fullname))
elif ext in (".py", ""):
tests.append(f"{base_mod}.{mod}" if base_mod else mod)
tests.append(fullname)
return sorted(tests)