| """Tests for the pluggable agent runtime layer.""" |
|
|
| from __future__ import annotations |
|
|
| from pi_test_support import ensure_agent_redact_paths |
|
|
| ensure_agent_redact_paths() |
|
|
| from agent_runtime import ( |
| AgentStreamEvent, |
| PiAgentRuntime, |
| coerce_agent_runtime, |
| normalize_orchestrator, |
| orchestrator_label, |
| ) |
| from pi_rpc_client import PiStreamEvent |
|
|
|
|
| def test_normalize_orchestrator_defaults_to_pi(monkeypatch): |
| monkeypatch.delenv("AGENT_ORCHESTRATOR", raising=False) |
| assert normalize_orchestrator(None) == "pi" |
| assert normalize_orchestrator("langgraph") == "langgraph" |
| assert normalize_orchestrator("unknown") == "pi" |
|
|
|
|
| def test_orchestrator_label(): |
| assert orchestrator_label("langgraph") == "LangGraph" |
| assert orchestrator_label("agentcore") == "Bedrock AgentCore Runtime" |
| assert orchestrator_label("agentcore-harness") == "Bedrock AgentCore Harness" |
|
|
|
|
| def test_pi_event_mapping(): |
| from agent_runtime import _pi_event_to_agent_event |
|
|
| mapped = _pi_event_to_agent_event( |
| PiStreamEvent(kind="text_delta", text="hello", tool_name="bash") |
| ) |
| assert mapped.kind == "text_delta" |
| assert mapped.text == "hello" |
| assert mapped.tool_name == "bash" |
|
|
|
|
| def test_coerce_agent_runtime_accepts_pi_adapter(): |
| class _FakePi: |
| running = True |
|
|
| def drain_pending_ui_history(self): |
| return [] |
|
|
| wrapped = PiAgentRuntime(_FakePi()) |
| assert coerce_agent_runtime(wrapped) is wrapped |
|
|
|
|
| def test_agent_stream_event_fields(): |
| event = AgentStreamEvent(kind="done", text="Agent finished.") |
| assert event.kind == "done" |
| assert event.is_error is False |
|
|