ec68b1f3a5
The last slice of the consumer-layer cutover. Teardown only — zero runtime-logic change; the 494-green suite is the regression gate. - Drop `httpx-sse` from pyproject + lockfile: slice-6 deleted its last user, nothing imports `httpx_sse`, the SDK owns SSE parsing now. - Module boundary (operator decision): KEEP `sessions.py` + `sse_client.py` as pure caller-semantic type/exception homes (no rename, no fold — A3 was blocked by the `AgentNotAvailable` name collision + `wt.py` would mis-home `endpoint_for_plane`). Docstrings updated to stop claiming "client"; the `AdminEvent`/`SseId`/exception homes stay put (resolves the slice-6 deferred-home item). - Retire wire contracts #2 (sessions) + #15 (tier3): DEC-1 phase-2 — normative authority already transferred to the cutover contract; the code they specified is gone, so the files are deleted. #1 (SSE event vocab) and `first_message` stay (ratatoskr-owned, not retired). - Final coverage-map re-anchor: tools/list_sessions re-homed to `wt.py`; the Last-Event-ID SSE-resume sub-gap CLOSED (folded into `stream_turn` auto-resume); Surface-2 SSE parsing re-anchored to the SDK. - Stale doc-rot fix: the cli.py transport comment no longer calls `seed_preset_first_message` "not-yet-migrated" (it rides `wt`). - v0.22.0 (minor, DEC-6, operator-approved): publishes the full 6-slice cutover milestone.
32 lines
1.4 KiB
Python
32 lines
1.4 KiB
Python
"""Tests for ratatoskr.sessions (caller-semantic types + `endpoint_for_plane`).
|
|
|
|
Post worldtree-sdk cutover the `sessions` module is down to `endpoint_for_plane`
|
|
(the Bifrost provider-plane helper) + the caller-semantic exception classes the
|
|
`ratatoskr.wt` adapter raises; every wire wrapper has retired onto the SDK adapter
|
|
(the wrappers' tests live in `test_wt.py`)."""
|
|
|
|
import pytest
|
|
|
|
from ratatoskr.sessions import endpoint_for_plane
|
|
|
|
|
|
class TestEndpointForPlane:
|
|
"""Issue #17 — endpoint_for_plane: plane name → Worldtree-visible base URL."""
|
|
|
|
def test_memory_plane_maps_to_8391(self) -> None:
|
|
"""memory [tracer]: 'memory' → http://<host>:8391 (POST-001)."""
|
|
assert endpoint_for_plane("memory", "10.100.10.50") == "http://10.100.10.50:8391"
|
|
|
|
def test_affect_plane_maps_to_8390(self) -> None:
|
|
"""affect: 'affect' → http://<host>:8390 (POST-001)."""
|
|
assert endpoint_for_plane("affect", "10.100.10.50") == "http://10.100.10.50:8390"
|
|
|
|
def test_combined_plane_maps_to_8392(self) -> None:
|
|
"""combined [#18 composite]: 'combined' → http://<host>:8392 (POST-001)."""
|
|
assert endpoint_for_plane("combined", "10.100.10.50") == "http://10.100.10.50:8392"
|
|
|
|
def test_unknown_plane_raises_value_error(self) -> None:
|
|
"""unknown_plane [adversarial]: any other plane → ValueError (PRE-001)."""
|
|
with pytest.raises(ValueError):
|
|
endpoint_for_plane("persona", "10.100.10.50")
|