HERMES-GIELIE/tests/test_route_approvals_extraction.py

84 lines
3.1 KiB
Python
Raw Normal View History

"""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"