Testing AudioText

The default test suite uses fake backends and does not download real models:

uv run pytest -q

Tests are tagged so a development or CI run can target one slice:

uv run pytest -q -m unit
uv run pytest -q -m api
uv run pytest -q -m worker
uv run pytest -q -m integration
uv run pytest -q -m "not slow_model"

Manual real-backend smoke tests are tagged slow_model. They may download Faster-Whisper model artifacts and can take minutes on a cold machine:

uv sync --extra dev --extra faster-whisper
AUDIOTEXT_RUN_SLOW_MODEL_TESTS=1 uv run pytest -q -m slow_model tests/test_real_faster_whisper_backend.py

Use the provider contract smoke against a running local service after creating a server-side API token:

AUDIOTEXT_API_TOKEN=att_tok_... \
  uv run python scripts/provider_contract_smoke.py \
  --base-url http://127.0.0.1:8791 \
  --model cpu-lite \
  --language ca \
  --list-only

Drop --list-only only when the real Faster-Whisper backend is installed and you are ready for the selected model to load or download.

Build the docs

The docs site uses MkDocs and mkdocstrings:

uv sync --extra dev --extra docs
uv run mkdocs build --strict

For local browsing:

uv run mkdocs serve