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
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
hivescope-0.1.0.tar.gz
(30.8 kB
view details)
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
hivescope-0.1.0-py3-none-any.whl
(36.6 kB
view details)
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
|