Tests
Ad-hoc test scripts for the Miku Discord Bot. None of these use a formal test framework — they are standalone scripts written during development to validate specific features.
Test Index
| Script | Type | Requirements | Purpose |
|---|---|---|---|
test_addressing.py |
Unit (self-contained) | None | Tests regex patterns for detecting when Miku is addressed in messages. Replicates logic from bot/utils/core.py. |
test_pfp_context.py |
Unit (self-contained) | None | Tests regex patterns for detecting profile-picture-related queries. |
test_conversation_history.py |
Unit | Built-in mocks | Tests conversation history management logic. |
test_error_handler.py |
Unit | Built-in mocks | Tests error handling utilities. |
test_evil_moods.py |
Integration | Running Cheshire Cat + Qdrant | Connects via WebSocket and tests all 10 evil mood personalities with sample messages. |
test_full_pipeline.py |
Integration | Running Cat + Qdrant | End-to-end test of the memory consolidation system v2. |
test_tts_audio.py |
Integration | Run inside miku-bot container | Tests the TTS audio streaming pipeline. |
test_voice_playback.py |
Integration | Active Discord voice session | Tests audio playback in a live voice channel. |
test_websocket.py |
Integration | RVC server at 172.25.0.1:8765 |
Tests WebSocket communication with the RVC voice conversion server. |
test_rocinante_comparison.py |
Benchmark | Full stack (llama-swap-amd, Cat) | Benchmarks Rocinante-X 12B model through both Normal and Evil Miku scenarios. Outputs to /tmp/test_rocinante_comparison.log. |
run_rocinante_test.sh |
Shell runner | Docker, full stack | Wrapper script that copies test_rocinante_comparison.py into the miku-bot container and runs it. |
Running Tests
Self-contained unit tests (no services needed)
python3 tests/test_addressing.py
python3 tests/test_pfp_context.py
python3 tests/test_conversation_history.py
python3 tests/test_error_handler.py
Integration tests (require running Docker services)
# Evil moods — needs Cat + Qdrant running
python3 tests/test_evil_moods.py
# Memory consolidation pipeline — needs Cat + Qdrant
python3 tests/test_full_pipeline.py
# TTS — run inside the miku-bot container
docker exec miku-bot python3 /app/tests/test_tts_audio.py
# Voice playback — needs an active voice session
python3 tests/test_voice_playback.py
# WebSocket to RVC — needs RVC server running
python3 tests/test_websocket.py
Benchmark tests
# Rocinante model comparison (takes a while)
./tests/run_rocinante_test.sh