guanghu-ice-heart/server-tools/persona-execution-limb-agent/persona_limb_agent.test.py

40 lines
1.7 KiB
Python

#!/usr/bin/env python3
import json
import pathlib
import subprocess
import sys
from persona_limb_agent import codex_succeeded, qwen_succeeded
script = pathlib.Path(__file__).with_name("persona_limb_agent.py")
def run(*args):
return subprocess.run([sys.executable, str(script), *args], capture_output=True, text=True)
probe = run("probe")
assert probe.returncode == 0
probe_body = json.loads(probe.stdout)
assert probe_body["secrets_read"] is False
assert probe_body["runtimes"]["qwen"]["available"] is True
prepared = run("prepare", "--persona", "ICE-P-ZY001", "--task-id", "TEST-001", "--task", "只读返回当前目录", "--runtime", "qwen")
assert prepared.returncode == 0
body = json.loads(prepared.stdout)
assert body["parent_persona_id"] == "ICE-P-ZY001"
assert body["controller"] == "ICE-P-ZY001"
assert body["authority"] == "CURRENT_TASK_ENVELOPE_ONLY"
unknown = run("prepare", "--persona", "UNKNOWN-PERSONA", "--task-id", "TEST-002", "--task", "不得执行", "--runtime", "qwen")
assert unknown.returncode != 0
assert json.loads(unknown.stdout)["error"] == "PERSONA_NOT_REGISTERED_NO_SYNTHETIC_WAKE"
fake_api_error = subprocess.CompletedProcess([], 0, '[{"type":"result","is_error":false,"result":"[API Error: 403 denied]"}]', '')
assert qwen_succeeded(fake_api_error) is False
fake_success = subprocess.CompletedProcess([], 0, '[{"type":"result","is_error":false,"result":"{\\"outcome\\":\\"PASS\\"}"}]', '')
assert qwen_succeeded(fake_success) is True
fake_codex = subprocess.CompletedProcess([], 0, '{"type":"item.completed","item":{"type":"agent_message","text":"done"}}\n', '')
assert codex_succeeded(fake_codex) is True
print("persona execution limb agent tests: PASS")