mirror of
https://github.com/hansjone/oclaw.git
synced 2026-10-09 03:23:23 +08:00
本次迁移将网关/通道/工具/技能/脚本与协议资源集中到新结构,统一路径常量与脚本转发机制,减少顶层噪音并保证运行与测试行为一致。 Made-with: Cursor
57 lines
1.9 KiB
Python
57 lines
1.9 KiB
Python
from __future__ import annotations
|
|
|
|
from oclaw.runtime.relay_pointer import build_acp_relay_result, validate_relay_share_envelope
|
|
|
|
|
|
def test_validate_relay_share_envelope_ok() -> None:
|
|
ok, err, env = validate_relay_share_envelope(
|
|
{
|
|
"schema_version": "v1",
|
|
"attachments": {
|
|
"scope_id": "s1",
|
|
"count": 1,
|
|
"total_bytes": 8,
|
|
"pointers": [
|
|
{
|
|
"schema_version": "v1",
|
|
"pointer_uri": "relay://attachments/s1/abcdef123456",
|
|
"rel_path": "attachments/a.txt",
|
|
"mime_type": "text/plain",
|
|
"bytes": 8,
|
|
"sha256": "f" * 64,
|
|
"source_agent": "generalist",
|
|
}
|
|
],
|
|
},
|
|
}
|
|
)
|
|
assert ok is True
|
|
assert err == ""
|
|
assert isinstance(env.get("attachments"), dict)
|
|
|
|
|
|
def test_validate_relay_share_envelope_bad_version() -> None:
|
|
ok, err, env = validate_relay_share_envelope({"schema_version": "v2", "attachments": {}})
|
|
assert ok is False
|
|
assert err == "relay_envelope_unsupported_version"
|
|
assert env == {}
|
|
|
|
|
|
def test_build_acp_relay_result_includes_ids_and_error() -> None:
|
|
out = build_acp_relay_result(
|
|
parent_run_id="parent-1",
|
|
child_run_id="child-1",
|
|
relay_envelope={"schema_version": "v2", "attachments": {}},
|
|
)
|
|
assert out["acp_parent_run_id"] == "parent-1"
|
|
assert out["acp_child_run_id"] == "child-1"
|
|
assert out["relay_ok"] is False
|
|
assert out["relay_error_code"] == "relay_envelope_unsupported_version"
|
|
assert out["relay_pointer_count"] == 0
|
|
|
|
|
|
def test_validate_relay_share_envelope_missing_attachments() -> None:
|
|
ok, err, env = validate_relay_share_envelope({"schema_version": "v1"})
|
|
assert ok is False
|
|
assert err == "relay_envelope_invalid"
|
|
assert env == {}
|