Testing¶
uv run pytest # everything
uv run pytest tests/ --ignore=tests/test_api.py -v # what CI runs
uv run pytest tests/test_unit.py -v # one file
uv run pytest tests/test_unit.py::test_config_loading -v # one test
Unit tests¶
No running server required, which is why CI runs these.
They cover configuration loading, module imports and initialisation, project structure, and tool definition formats.
Integration tests¶
tests/test_api.py hits http://localhost:8000 with requests, so it needs a live
bridge and a live Ollama. CI excludes it.
Run the server in one terminal:
and the tests in another:
They cover the API endpoints over real HTTP, end-to-end behaviour against Ollama, and tool calling with response integration.
Manual checks¶
curl http://localhost:8000/health
curl http://localhost:8000/version
curl -X POST http://localhost:8000/api/chat \
-H "Content-Type: application/json" \
-d '{"model": "qwen3:0.6b", "messages": [{"role": "user", "content": "What tools are available?"}]}'
That last one is a quick way to confirm your MCP servers connected and their tools made it into the list.