Files
hermes-webui/tests/test_route_approvals_extraction.py
165454dd7b Release v0.51.275 — Release IQ (stage-p3d — approval SSE state extraction #3575) (#3681)
* refactor(routes): extract approval SSE state into api/route_approvals.py (#3575)

Co-authored-by: Rod Boev <rod.boev@gmail.com>

* docs(changelog): v0.51.275 — Release IQ (stage-p3d)

---------

Co-authored-by: nesquena-hermes <[email protected]>
Co-authored-by: Rod Boev <rod.boev@gmail.com>
2026-06-05 13:10:45 -07:00

84 lines
3.1 KiB
Python

"""Import-resolution and identity tests for the route_approvals extraction.
Verifies that api.route_approvals is self-contained and that api.routes
re-exports the same live objects (not copies) so existing callers are
unaffected by the move.
"""
def test_route_approvals_imports():
from api.route_approvals import submit_pending, _approval_sse_subscribers
assert callable(submit_pending)
assert isinstance(_approval_sse_subscribers, dict)
def test_backward_compat_imports():
from api.routes import submit_pending
assert callable(submit_pending)
def test_identity():
from api.route_approvals import _approval_sse_subscribers as a
from api.routes import _approval_sse_subscribers as b
assert a is b, "routes.py must re-export the same object, not a copy"
def test_pending_identity():
"""_pending dict must be the same object in both modules."""
from api.route_approvals import _pending as a
from api.routes import _pending as b
assert a is b, "routes.py must re-export the same _pending object"
def test_lock_identity():
"""_lock must be the same object in both modules."""
from api.route_approvals import _lock as a
from api.routes import _lock as b
assert a is b, "routes.py must re-export the same _lock object"
def test_sse_helpers_importable_from_route_approvals():
"""All SSE helpers must be importable directly from route_approvals."""
from api.route_approvals import (
_approval_sse_subscribe,
_approval_sse_unsubscribe,
_approval_sse_notify_locked,
_approval_sse_notify,
)
assert callable(_approval_sse_subscribe)
assert callable(_approval_sse_unsubscribe)
assert callable(_approval_sse_notify_locked)
assert callable(_approval_sse_notify)
def test_sse_helpers_backward_compat():
"""SSE helpers must still be importable from routes for backward compat."""
from api.routes import (
_approval_sse_subscribe,
_approval_sse_unsubscribe,
_approval_sse_notify_locked,
_approval_sse_notify,
)
assert callable(_approval_sse_subscribe)
assert callable(_approval_sse_unsubscribe)
assert callable(_approval_sse_notify_locked)
assert callable(_approval_sse_notify)
def test_sse_helper_identity():
"""SSE helpers imported from routes must be the same callables from route_approvals."""
import api.route_approvals as ra
import api.routes as r
assert ra._approval_sse_subscribe is r._approval_sse_subscribe
assert ra._approval_sse_unsubscribe is r._approval_sse_unsubscribe
assert ra._approval_sse_notify_locked is r._approval_sse_notify_locked
assert ra._approval_sse_notify is r._approval_sse_notify
assert ra.submit_pending is r.submit_pending
def test_no_circular_import():
"""route_approvals must not import from api.routes (no circular dep)."""
import pathlib
src = (pathlib.Path(__file__).parent.parent / "api" / "route_approvals.py").read_text()
assert "from api.routes" not in src, "route_approvals.py must not import from api.routes"
assert "import api.routes" not in src, "route_approvals.py must not import api.routes"