feat: adding automated tests
This commit is contained in:
parent
e484f12228
commit
29ee360082
18 changed files with 2886 additions and 4 deletions
60
test/test.md
Normal file
60
test/test.md
Normal file
|
|
@ -0,0 +1,60 @@
|
|||
# Testing nomyo-router
|
||||
|
||||
## Setup
|
||||
|
||||
Install test dependencies (from the project root):
|
||||
|
||||
```bash
|
||||
pip install -r test/requirements_test.txt
|
||||
```
|
||||
|
||||
## Running tests
|
||||
|
||||
All commands run from the `test/` directory:
|
||||
|
||||
```bash
|
||||
cd test
|
||||
```
|
||||
|
||||
**All non-integration tests** (no backend required):
|
||||
```bash
|
||||
pytest -m "not integration" -v
|
||||
```
|
||||
|
||||
**Integration tests only** (requires backend at `192.168.0.51:12434`):
|
||||
```bash
|
||||
pytest -m integration -v
|
||||
```
|
||||
|
||||
**Everything:**
|
||||
```bash
|
||||
pytest -v
|
||||
```
|
||||
|
||||
## Test structure
|
||||
|
||||
| File | What it covers | Backend needed |
|
||||
|---|---|---|
|
||||
| `test_unit_helpers.py` | Pure helper functions (`_mask_secrets`, `_is_fresh`, `ep2base`, etc.) | No |
|
||||
| `test_unit_transforms.py` | Message transform functions (tool calls, image stripping, etc.) | No |
|
||||
| `test_unit_context.py` | Context window trimming logic | No |
|
||||
| `test_fetch.py` | `fetch.available_models` / `fetch.loaded_models` with mocked HTTP | No |
|
||||
| `test_choose_endpoint.py` | `choose_endpoint` routing logic with mocked fetch layer | No |
|
||||
| `test_api_validation.py` | HTTP 400/401/403 validation and auth middleware (in-process app) | No |
|
||||
| `test_api_integration.py` | Full request/response against a real Ollama/llama-server backend | **Yes** |
|
||||
|
||||
## Integration test backend
|
||||
|
||||
Integration tests start the router in-process via `startup_event()` and route traffic
|
||||
through `httpx.ASGITransport` — no separately running router instance is needed.
|
||||
|
||||
They do require a reachable Ollama or llama-server backend. Override the defaults via
|
||||
environment variables:
|
||||
|
||||
```bash
|
||||
export NOMYO_TEST_OLLAMA=http://192.168.0.51:12434
|
||||
export NOMYO_TEST_EMBED_MODEL=nomic-embed-text # optional, auto-discovered otherwise
|
||||
export NOMYO_TEST_MODEL_CHAT=llama3.2 # optional, auto-discovered otherwise
|
||||
```
|
||||
|
||||
If the backend is unreachable, integration tests are automatically skipped.
|
||||
Loading…
Add table
Add a link
Reference in a new issue