SyntheticMDProductions's picture
ADAM October 2026 source release: PixelRow, INRFlow, Wan Video, Oasis player and field guide
f8c73f9 verified
Raw History Blame Contribute Delete
1.2 kB
"""Run ADAM's test modules in isolated processes for Qt application lifetimes."""
from __future__ import annotations
import os
from pathlib import Path
import subprocess
import sys
def main() -> int:
root = Path(__file__).resolve().parents[1]
modules = sorted((root / "tests").glob("test_*.py"))
if not modules:
print("No test modules were found.")
return 1
environment = os.environ.copy()
environment.setdefault("QT_QPA_PLATFORM", "offscreen")
environment.setdefault("OMP_NUM_THREADS", "2")
environment.setdefault("MKL_NUM_THREADS", "2")
failed: list[str] = []
for module in modules:
print(f"\nRunning {module.name}", flush=True)
result = subprocess.run(
[sys.executable, "-m", "pytest", str(module), "-q", *sys.argv[1:]],
cwd=root,
env=environment,
check=False,
)
if result.returncode:
failed.append(module.name)
print(f"\n{len(modules) - len(failed)}/{len(modules)} test modules passed.")
if failed:
print("Failed modules: " + ", ".join(failed))
return int(bool(failed))
if __name__ == "__main__":
raise SystemExit(main())