File size: 1,199 Bytes
f8c73f9 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | """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())
|