Files
2026-07-13 13:12:33 +08:00

42 lines
1.1 KiB
Python

from __future__ import annotations
import hashlib
import json
from opensquilla.engine.agent import _omit_large_json_tool_fields
def test_large_body_fields_are_omitted_from_json_tool_result() -> None:
large_body = "x" * 20_001
large_base64 = "y" * 20_001
content = json.dumps(
{
"status": 200,
"body": large_body,
"nested": {"body_base64": large_base64},
"small": "kept",
}
)
sanitized, changed = _omit_large_json_tool_fields(content)
payload = json.loads(sanitized)
assert changed is True
assert payload["body"] == {
"omitted": True,
"omitted_chars": len(large_body),
"sha256": hashlib.sha256(large_body.encode("utf-8")).hexdigest(),
"reason": "large_tool_result_field",
}
assert payload["nested"]["body_base64"]["omitted"] is True
assert payload["small"] == "kept"
def test_small_body_fields_are_left_unchanged() -> None:
content = json.dumps({"body": "small", "body_base64": "YWJj"})
sanitized, changed = _omit_large_json_tool_fields(content)
assert changed is False
assert sanitized == content