End-to-end tests live in test/end2end/ and use ovoscope.audio harnesses:
uv run --active pytest test/end2end/ -v --timeout=60Four test modules:
test_audio_service_e2e.py— 11 tests forAudioService(backend selection, ducking, stop guard, session validation)test_playback_service_e2e.py— 7 tests forPlaybackService(TTS synthesis, speak lifecycle events, opm.tts.query, speak status)test_audio_service_extended_e2e.py— 13 extended tests forAudioService(volume ducking, restore-on-handled, stop guard, position/length bus roundtrip, seek, track_start callback,AudioCaptureSession, shutdown isolation)test_playback_service_extended_e2e.py— 14 extended tests forPlaybackService(b64_audio, languages/tts, instant play WAV + binary, G2P query, session validation, speak+ident,AudioCaptureSessionTTS lifecycle, speak after stop)
No real audio hardware or TTS engine required — MockAudioBackend and MockTTS
from ovoscope[audio] are used. See ovoscope/docs/audio-testing.md for
harness API reference.
ovos-audio is ovos-core audio daemon client.
pip install ovos-audioOr for development:
uv pip install -e .Open an issue on the GitHub repository. Ensure you are targeting the dev branch for fixes.
uv run pytest test/ --cov=ovos_audio- Fork the repository and create a feature branch from
dev. - Write tests for your changes.
- Open a PR targeting the
devbranch. - Ensure CI passes before requesting review.
See QUICK_FACTS.md — currently >=3.9.