Files
voice-to-notes/python/tests/test_handlers.py
T

44 lines
1.4 KiB
Python
Raw Normal View History

"""Tests for message handler routing."""
from voice_to_notes.ipc.handlers import HandlerRegistry, ping_handler
from voice_to_notes.ipc.messages import IPCMessage
def test_ping_handler():
msg = IPCMessage(id="req-1", type="ping", payload={"hello": "world"})
response = ping_handler(msg)
assert response.type == "pong"
assert response.id == "req-1"
assert response.payload["echo"] == {"hello": "world"}
def test_registry_routes_to_handler():
registry = HandlerRegistry()
registry.register("ping", ping_handler)
msg = IPCMessage(id="req-1", type="ping", payload={})
response = registry.handle(msg)
assert response is not None
assert response.type == "pong"
def test_registry_unknown_type():
registry = HandlerRegistry()
msg = IPCMessage(id="req-1", type="nonexistent", payload={})
response = registry.handle(msg)
assert response is not None
assert response.type == "error"
assert response.payload["code"] == "unknown_type"
def test_registry_handler_exception():
def bad_handler(msg: IPCMessage) -> IPCMessage:
raise ValueError("something broke")
registry = HandlerRegistry()
registry.register("bad", bad_handler)
msg = IPCMessage(id="req-1", type="bad", payload={})
response = registry.handle(msg)
assert response is not None
assert response.type == "error"
assert response.payload["code"] == "handler_error"