oclaw/tests/test_whatsapp_ops_scripts.py
oliver 1d46356d9e 支持微信/WhatsApp 回送附件直发并补齐链路测试。
保持入站到 agent 流程不变,在回送阶段支持 media_path/media_url 与 base64 附件直发,同时让通道回包沿用会话中助手附件记录以对齐 chat 历史逻辑。

Made-with: Cursor
2026-04-29 10:13:09 +08:00

48 lines
1.6 KiB
Python

from __future__ import annotations
from pathlib import Path
REPO_ROOT = Path(__file__).resolve().parents[1]
def _read(rel: str) -> str:
return (REPO_ROOT / rel).read_text(encoding="utf-8")
def test_whatsapp_ops_scripts_exist_and_use_openclaw() -> None:
for rel in (
"runtime/operations/scripts/whatsapp_install.ps1",
"runtime/operations/scripts/whatsapp_login.ps1",
"runtime/operations/scripts/whatsapp_start.ps1",
"runtime/operations/scripts/whatsapp_status.ps1",
"runtime/operations/scripts/whatsapp_stop.ps1",
):
text = _read(rel)
assert "openclaw" not in text.lower()
start_text = _read("runtime/operations/scripts/whatsapp_start.ps1")
assert "baileys_runner.ts" in start_text
assert "AIA_GATEWAY_BASE_URL" in start_text
def test_runbook_mentions_whatsapp_scripts() -> None:
text = _read("docs/RUNBOOK.md")
assert "whatsapp_install.ps1" in text
assert "whatsapp_login.ps1" in text
assert "whatsapp_start.ps1" in text
assert "/inbound/whatsapp" in text
def test_start_all_gracefully_skips_missing_channel_sidecars() -> None:
text = _read("runtime/operations/scripts/start_all.ps1")
assert 'Warn "weixin sidecar skipped:' in text
assert 'Warn "whatsapp sidecar skipped:' in text
def test_whatsapp_runner_supports_reply_attachments_base64() -> None:
text = _read("runtime/operations/whatsapp_bridge/baileys_runner.ts")
assert "sendReplyWithAttachments" in text
assert "data_base64" in text
assert "media_base64" in text
assert "media_path" in text
assert "media_url" in text