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())