document_redaction / test /test_agentcore_harness_runtime.py
seanpedrickcase's picture
Sync: Fixes to image annotation component for compatibility with gradio 6.26.0
2677bc3
Raw
History Blame Contribute Delete
2.68 kB
"""Tests for AgentCore Harness runtime helpers and stream mapping."""
from __future__ import annotations
from pi_test_support import ensure_agent_redact_paths
ensure_agent_redact_paths()
from agent_runtime import normalize_orchestrator # noqa: E402
from agentcore_harness_runtime import ( # noqa: E402
harness_runtime_session_id,
map_harness_stream_event,
parse_agentcore_harness_arn,
)
def test_harness_runtime_session_id_minimum_length():
session_id = harness_runtime_session_id("abc")
assert len(session_id) >= 33
assert session_id == harness_runtime_session_id("abc")
def test_parse_agentcore_harness_arn():
arn = "arn:aws:bedrock-agentcore:eu-west-2:404053085091:harness/MyHarness-abc123"
region, parsed = parse_agentcore_harness_arn(arn)
assert region == "eu-west-2"
assert parsed == arn
def test_map_content_block_delta_text():
events = list(
map_harness_stream_event({"contentBlockDelta": {"delta": {"text": "Hello"}}})
)
assert len(events) == 1
assert events[0].kind == "text_delta"
assert events[0].text == "Hello"
def test_map_tool_use_start():
events = list(
map_harness_stream_event(
{
"contentBlockStart": {
"start": {
"toolUse": {
"toolUseId": "t1",
"name": "bash",
"input": {"command": "ls"},
}
}
}
}
)
)
assert events[0].kind == "tool_start"
assert events[0].tool_name == "bash"
def test_map_runtime_client_error():
events = list(
map_harness_stream_event({"runtimeClientError": {"message": "Harness failed"}})
)
assert events[0].kind == "error"
assert events[0].is_error is True
def test_harness_s3_input_uri_explicit_prefix(monkeypatch):
from harness_input_bridge import harness_s3_input_uri
monkeypatch.setenv(
"AGENTCORE_HARNESS_S3_INPUT_PREFIX",
"s3://my-bucket/prefix",
)
bucket, key, uri = harness_s3_input_uri("sess-1", "doc.pdf")
assert bucket == "my-bucket"
assert key == "prefix/doc.pdf"
assert uri == "s3://my-bucket/prefix/doc.pdf"
def test_normalize_orchestrator_harness_alias():
import os
prev = os.environ.get("AGENT_ORCHESTRATOR")
try:
os.environ["AGENT_ORCHESTRATOR"] = "harness"
assert normalize_orchestrator() == "agentcore-harness"
finally:
if prev is None:
os.environ.pop("AGENT_ORCHESTRATOR", None)
else:
os.environ["AGENT_ORCHESTRATOR"] = prev