Testing

This project uses pytest for testing, complemented by static analysis tools for type and style checking.

Run Tests

To execute the full test suite, run:

uv run pytest tests

Warning

The baseline test use docker and requires sudo privileges on unix.

Code Coverage

To measure and visualize test coverage, use the following command:

uv run --no-sync pytest --cov=app --cov-report=html:.coverage-report tests
cd .coverage-report
python3 -m http.server 8000

Then open localhost:8000 in your browser to inspect the interactive HTML coverage report.

Static Analysis

The project enforces code quality and type safety through:

  • ruff for linting and formatting

  • mypy for static type checking

Run both tools with:

uv run ruff check
uv run mypy --strict .