End-to-end test framework for OpenVoiceOS skills
Project description
OvoScope
OvoScope is an end-to-end testing framework for OVOS skills.
It contains the full core runtime environment using a lightweight in-process ovos-core, allowing skill developers to test the full skill message flow, from utterance to intent handling to final bus responses — without launching a full assistant stack.
Like a microscope for your OVOS skills.
Features
- Simulates OVOS Core messagebus interactions
- Sends test
Messageobjects and captures responses - Verifies message types, data, routing, session handling, and language
- Automatically flips message direction when configured
- Designed to integrate cleanly into
unittestorpytestworkflows
Installation
pip install ovoscope
Usage Example
Testing scenario of complete intent failure (no skills installed)
from ovoscope import End2EndTest
from ovos_bus_client.message import Message
from ovos_bus_client.session import Session
session = Session("123") # change lang, pipeline, etc. as needed
message = Message("recognizer_loop:utterance",
{"utterances": ["hello world"]},
{"session": session.serialize(), "source": "A", "destination": "B"})
test = End2EndTest(
skill_ids=[],
source_message=message,
expected_messages=[
message,
Message("mycroft.audio.play_sound", {"uri": "snd/error.mp3"}),
Message("complete_intent_failure", {}),
Message("ovos.utterance.handled", {}),
]
)
test.execute()
Why OvoScope?
- Lightweight: No need to launch a full messagebus or audio stack
- Isolated: Use
FakeBusandMiniCroftfor fast, reliable test environments - Flexible: Works with any skill that conforms to OVOS skill loading
License
Contributing
PRs are welcome! See CONTRIBUTING.md for guidelines.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ovoscope-0.2.0.tar.gz.
File metadata
- Download URL: ovoscope-0.2.0.tar.gz
- Upload date:
- Size: 5.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.23
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0afd91e9338a3cdbdcd2bff70c0a63caa92bec415e8ab9d78dd68f19ae428eca
|
|
| MD5 |
32b833f1ccb500a936e0bc3fb917ddfb
|
|
| BLAKE2b-256 |
243578bada646a5d2787850db92d8b056f86356f46635b82e32ed20bbefc564b
|
File details
Details for the file ovoscope-0.2.0-py3-none-any.whl.
File metadata
- Download URL: ovoscope-0.2.0-py3-none-any.whl
- Upload date:
- Size: 5.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.23
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9c703a3e7062c65a59659827024473b153d0120b60093b7c6667e5934681d0d3
|
|
| MD5 |
eb3b4197d97201b2644f8a6b3d5ec3d1
|
|
| BLAKE2b-256 |
d279fcfc551198c656e74ad530e24848f573b9ffe48fc280c514857df64ac8d9
|