Move conformance tests to per-version directories
Conformance tests now live in conformance/<version>/*.py and are checked against the corresponding stubs in dist/<version>/. Auto-detection only runs versions that have both stubs and test files. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
441631d69a
commit
8879d14073
25
main.py
25
main.py
@ -397,7 +397,11 @@ def typecheck_stubs(versions: list[str] | None = None) -> None:
|
||||
|
||||
|
||||
def conformance_check(versions: list[str] | None = None) -> None:
|
||||
"""Type-check conformance test files against generated stubs."""
|
||||
"""Type-check conformance test files against generated stubs.
|
||||
|
||||
Each version's tests live in conformance/<version>/*.py and are checked
|
||||
against the corresponding generated stubs in dist/<version>/.
|
||||
"""
|
||||
dist_dir = SCRIPT_DIR / "dist"
|
||||
conformance_dir = SCRIPT_DIR / "conformance"
|
||||
|
||||
@ -406,24 +410,29 @@ def conformance_check(versions: list[str] | None = None) -> None:
|
||||
sys.exit(1)
|
||||
|
||||
if versions:
|
||||
missing = [v for v in versions if not (dist_dir / v).is_dir()]
|
||||
if missing:
|
||||
print(f"Missing stubs for: {', '.join(missing)}")
|
||||
missing_stubs = [v for v in versions if not (dist_dir / v).is_dir()]
|
||||
if missing_stubs:
|
||||
print(f"Missing stubs for: {', '.join(missing_stubs)}")
|
||||
sys.exit(1)
|
||||
missing_tests = [v for v in versions if not (conformance_dir / v).is_dir()]
|
||||
if missing_tests:
|
||||
print(f"No conformance tests for: {', '.join(missing_tests)}")
|
||||
sys.exit(1)
|
||||
else:
|
||||
versions = sorted(
|
||||
d.name
|
||||
for d in dist_dir.iterdir()
|
||||
if d.is_dir() and not d.name.startswith(".")
|
||||
for d in conformance_dir.iterdir()
|
||||
if d.is_dir() and (dist_dir / d.name).is_dir()
|
||||
)
|
||||
|
||||
if not versions:
|
||||
print("No generated stubs found in dist/.")
|
||||
print("No conformance test directories found.")
|
||||
sys.exit(1)
|
||||
|
||||
failed = False
|
||||
for version in versions:
|
||||
version_dir = dist_dir / version
|
||||
test_dir = conformance_dir / version
|
||||
print(f"=== Conformance check against Blender {version} stubs ===")
|
||||
|
||||
python_version_file = version_dir / ".python-version"
|
||||
@ -437,7 +446,7 @@ def conformance_check(versions: list[str] | None = None) -> None:
|
||||
config.write_text(
|
||||
json.dumps(
|
||||
{
|
||||
"include": [str(conformance_dir)],
|
||||
"include": [str(test_dir)],
|
||||
"extraPaths": [str(version_dir)],
|
||||
"typeCheckingMode": "strict",
|
||||
"pythonVersion": python_version,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user