Hivescope: E2E testing library for HiveMind protocol
Project description
Hivescope
A self-contained pytest-based E2E testing library for HiveMind protocol implementations.
Install
pip install "hivescope @ git+https://github.com/JarbasHiveMind/hivescope@dev"
With OVOS skill-level testing support:
pip install "hivescope[ovos] @ git+https://github.com/JarbasHiveMind/hivescope@dev"
Quick Start
from hivescope.scenarios import single_satellite
from hivescope.assertions import assert_handshake_complete, assert_encryption_match
def test_handshake():
builder = single_satellite()
builder.start_all()
try:
master = builder.get_master("M0")
satellite = builder.get_satellite("S0")
assert_handshake_complete(master, satellite)
assert_encryption_match(master, satellite)
finally:
builder.stop_all()
Using pytest fixtures (add to tests/conftest.py):
pytest_plugins = ['hivescope.pytest_fixtures']
def test_message_forwarded(master_node, satellite_node):
from ovos_bus_client.message import Message
satellite_node.send(Message("test:ping", {}))
master_node.recorder.assert_received("BUS", count=1)
Templates
Copy-paste test templates from templates/ into your repo's tests/e2e/:
| Template | Covers |
|---|---|
test_template_handshake.py |
Cipher/encoding agreement, handshake completion |
test_template_routing.py |
Message routing through master |
test_template_acl.py |
ACL enforcement for restricted satellites |
test_template_binary.py |
Binary protocol message handling |
Configuration
| Key | Default | Purpose |
|---|---|---|
use_loopback |
False |
Pass True to add_master() to use loopback network protocol instead of in-process |
[ovos] extra |
not installed | Enables OvoscopeAgentProtocol backed by a live MiniCroft |
API Reference
See docs/index.md for the full public API.
License
AGPL-3.0
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 hivescope-0.1.0.tar.gz.
File metadata
- Download URL: hivescope-0.1.0.tar.gz
- Upload date:
- Size: 30.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
160515bcbaa0ce9ee22e597847b6e7350e0ee48c4d6414cf84a004536a581d63
|
|
| MD5 |
c3511a7c3ab3d1ca99dafad0c347af24
|
|
| BLAKE2b-256 |
698cea3c0cfa1307f52560cb203cc5eaf26a5f1d8113e6e02d6cbf5f5da2dd21
|
File details
Details for the file hivescope-0.1.0-py3-none-any.whl.
File metadata
- Download URL: hivescope-0.1.0-py3-none-any.whl
- Upload date:
- Size: 36.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dd4f6b28a03e9770ad130dd2c5bedd3c1c46ef1c083edb7cb5a55292b753429a
|
|
| MD5 |
915b20fdcc7ff994283dc629c75be089
|
|
| BLAKE2b-256 |
a5002a561f2022b5f1e3876be4a10ab3db747281ea38fc02b01829df73d0afa5
|