Skip to main content

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 Message objects and captures responses
  • Verifies message types, data, routing, session handling, and language
  • Automatically flips message direction when configured
  • Designed to integrate cleanly into unittest or pytest workflows

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 FakeBus and MiniCroft for fast, reliable test environments
  • Flexible: Works with any skill that conforms to OVOS skill loading

License

Apache 2.0


Contributing

PRs are welcome! See CONTRIBUTING.md for guidelines.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ovoscope-0.1.1a1.tar.gz (5.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ovoscope-0.1.1a1-py3-none-any.whl (5.4 kB view details)

Uploaded Python 3

File details

Details for the file ovoscope-0.1.1a1.tar.gz.

File metadata

  • Download URL: ovoscope-0.1.1a1.tar.gz
  • Upload date:
  • Size: 5.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.23

File hashes

Hashes for ovoscope-0.1.1a1.tar.gz
Algorithm Hash digest
SHA256 67c6660df9693e4922141b2d6813eaf8dee20c0da9fc6016f8225cb4f48a45a8
MD5 f7f0bb8b0bf903cb9cb5a6c8ac17c63a
BLAKE2b-256 da09b3d2c681901095bad7e76757e5b06b6f8b378b057260436be833d9afe885

See more details on using hashes here.

File details

Details for the file ovoscope-0.1.1a1-py3-none-any.whl.

File metadata

  • Download URL: ovoscope-0.1.1a1-py3-none-any.whl
  • Upload date:
  • Size: 5.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.23

File hashes

Hashes for ovoscope-0.1.1a1-py3-none-any.whl
Algorithm Hash digest
SHA256 8285fdf5a0c95b9cc4ba8f3d5f3507099ff3521321222fbec9d01656d5580435
MD5 c5e2e88ad5ad0c12d95fe0c80af1a11f
BLAKE2b-256 5c682b4c74eaa466ec59ec8ff6d4e8895426716994c6e90c1402c67269ad5ed2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page