48 lines
1.6 KiB
Markdown
48 lines
1.6 KiB
Markdown
# Voice-chat tests
|
|
|
|
Two tiers.
|
|
|
|
## Unit tests — fast, GPU-free
|
|
|
|
```
|
|
python -m pytest tests/unit -v
|
|
```
|
|
|
|
These exercise pure logic: config parsing, prompt derivation, LoRA spec
|
|
parsing, frame-length fitting, library round-robin selection. They do not
|
|
touch CUDA, Wan2.2, MuseTalk, or ffmpeg. Safe to run on Windows, outside
|
|
Docker, without any models installed.
|
|
|
|
## Component tests — slow, GPU-required, run inside Docker
|
|
|
|
Each script in `tests/component/` exercises one subsystem end-to-end against
|
|
the real models. They are ordered to match the implementation phases:
|
|
|
|
| Script | Phase | Tests |
|
|
|---|---|---|
|
|
| `test_01_video_skeleton.py` | 1 | VideoEngine loads, config gate respected |
|
|
| `test_02_wan22_loras.py` | 2 | Wan2.2 pipeline loads, LoRA stack applies |
|
|
| `test_03_idle_clip.py` | 3 | set_avatar → idle MP4, written to disk for eyeballing |
|
|
| `test_04_library_prebake.py` | 4 | library mode pre-bakes N base clips |
|
|
| `test_05_musetalk_lipsync.py` | 5 | MuseTalk lip-sync on library frames + ffmpeg mux |
|
|
| `test_06_reflective.py` | 6 | reflective mode: fresh Wan2.2 per reply |
|
|
| `test_07_endpoints.py` | 7 | HTTP endpoints return sane responses |
|
|
| `test_08_lora_reload.py` | 8 | /api/reload-loras swaps LoRAs live |
|
|
|
|
Run one:
|
|
|
|
```
|
|
# Inside the container:
|
|
docker compose exec voice-chat python -m tests.component.test_03_idle_clip
|
|
```
|
|
|
|
Run all (slow, ~20+ minutes on 5090):
|
|
|
|
```
|
|
docker compose exec voice-chat python -m tests.component.run_all
|
|
```
|
|
|
|
Each component script writes its artifacts (MP4s, PNG frame dumps, logs)
|
|
to `tests/component/_out/` so you can visually inspect results. That
|
|
directory is gitignored.
|