Spaces:
Running
Running
#!/usr/bin/env python3 | |
""" | |
Test runner script for Tokenizer Pro | |
Usage: | |
python run_tests.py # Run all tests | |
python run_tests.py unit # Run only unit tests | |
python run_tests.py integration # Run only integration tests | |
python run_tests.py --coverage # Run with coverage report | |
""" | |
import sys | |
import subprocess | |
import os | |
def run_command(cmd): | |
"""Run a command and return the exit code.""" | |
print(f"Running: {' '.join(cmd)}") | |
return subprocess.call(cmd) | |
def main(): | |
"""Main test runner function.""" | |
args = sys.argv[1:] | |
# Base pytest command | |
pytest_cmd = ["python", "-m", "pytest"] | |
# Parse arguments | |
if "--coverage" in args: | |
pytest_cmd.extend(["--cov=app", "--cov-report=html", "--cov-report=term"]) | |
args.remove("--coverage") | |
if "unit" in args: | |
pytest_cmd.extend([ | |
"tests/test_tokenizer_service.py", | |
"tests/test_stats_service.py", | |
"tests/test_file_service.py", | |
"tests/test_validators.py" | |
]) | |
elif "integration" in args: | |
pytest_cmd.append("tests/test_routes.py") | |
else: | |
# Run all tests | |
pytest_cmd.append("tests/") | |
# Add any remaining arguments | |
pytest_cmd.extend(args) | |
# Run the tests | |
exit_code = run_command(pytest_cmd) | |
if exit_code == 0: | |
print("\n✅ All tests passed!") | |
else: | |
print(f"\n❌ Tests failed with exit code {exit_code}") | |
return exit_code | |
if __name__ == "__main__": | |
sys.exit(main()) |