| #!/usr/bin/env python3 | |
| """Minimal test runner for demo project - no base dependencies.""" | |
| from __future__ import annotations | |
| import subprocess | |
| import sys | |
| from pathlib import Path | |
| def main() -> int: | |
| """Run pytest using demo's .venv.""" | |
| demo_root = Path(__file__).resolve().parent.parent | |
| venv_python = demo_root / ".venv" / "bin" / "python" | |
| if not venv_python.exists(): | |
| sys.stderr.write(f"Error: {venv_python} not found. Run module_setup.py first.\n") | |
| return 1 | |
| tests_dir = demo_root / "tests" | |
| if not tests_dir.exists(): | |
| sys.stderr.write(f"No tests directory found at {tests_dir}. Nothing to test.\n") | |
| return 0 | |
| # Build pytest command with default args if none provided | |
| cmd = [str(venv_python), "-m", "pytest"] | |
| # Add default args only if no args provided | |
| if len(sys.argv) == 1: | |
| cmd.extend( | |
| [ | |
| "tests/", | |
| "-v", | |
| "--cov=apps", | |
| "--cov-report=term-missing", | |
| ] | |
| ) | |
| else: | |
| cmd.extend(sys.argv[1:]) | |
| try: | |
| subprocess.run(cmd, cwd=str(demo_root), check=True) | |
| return 0 | |
| except subprocess.CalledProcessError as exc: | |
| return exc.returncode | |
| if __name__ == "__main__": | |
| raise SystemExit(main()) | |