Files
hope-voice-api/tests/README.md
T
2026-10-02 16:07:24 -04:00

38 lines
2.3 KiB
Markdown

# Hope multi-user qualification
## Offline regression suite (no NAS or model calls)
```sh
python -m venv .venv-tests
.venv-tests/bin/python -m pip install pytest pytest-asyncio -r control/requirements.txt
.venv-tests/bin/python -m pytest --noconftest tests/unit/test_accounts.py tests/unit/test_provisioner.py tests/unit/test_token_bootstrap.py tests/unit/test_deploy_rollback.py -q
agent/.venv/bin/python -m unittest discover -s tests/unit -p test_hermes_llm.py -v
```
Covers authorization, revocation, CSRF, lifecycle/restart failures, Docker ownership, authenticated server-derived room routing, SSE framing, content-only output, cancellation, redacted errors, and wait/final-answer callbacks.
## Azure English voice regression
```sh
.venv-tests/bin/python -m pytest --noconftest tests/unit/test_voice_catalog.py tests/unit/test_voice_settings_ui.py -q
```
Catalog tests mock Azure and the authenticated account boundary. Browser tests
require Playwright Chromium and use local assets with mocked APIs, never the NAS.
They cover the Ava Omni default, legacy HD preference migration, English accents,
search/selection, cache/failure recovery, and anonymous/revoked-account denial.
Derived Omni personas follow Microsoft's documented naming convention; individual
voice synthesis and regional availability still require live Azure qualification.
## Legacy tests
Top-level `test_*.py` and `conftest.py` describe the former OpenWebUI/MCP architecture and default to live Unraid. **Do not run them as the migrated regression suite.** Retained only as historical references: weather/dispatch/local memory and anonymous-token assumptions no longer apply. Hope Music remains an independent deployment.
## Live qualification
Explicitly opt in with administrator-created test accounts. Never put passwords or bearer tokens in test source/argv. Confirm anonymous denial, browser login/admin creation, ready private containers, direct Hermes content, tool progress and final reply, normal-user administration denial, account deletion/container removal/session revocation, logout room revocation, and account-scoped history isolation.
API/UI/stream evidence is not physical microphone or iPhone audio/interruption qualification. Recorded results and limitations are in `QUALIFICATION.md`.
Keep credentials in protected ignored runtime files; never print response tokens or Docker environment contents.