oclaw/tests/test_channel_dispatch_defaults.py
oliver 47fd83597e Make WhatsApp ops English-first for field deployments.
Default progress, quote wrappers, tool-error copy, and playbook recipes to English unless lang is explicitly zh.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-10 22:51:25 +08:00

65 lines
2.1 KiB
Python

from __future__ import annotations
from runtime.application.gateway.inbound_service import (
_resolve_channel_dispatch,
)
class _DummyStore:
def __init__(self, data: dict[str, str] | None = None) -> None:
self._data = dict(data or {})
def get_setting(self, key: str) -> str:
return str(self._data.get(key) or "")
def test_channel_dispatch_defaults_to_expert_and_generalist() -> None:
store = _DummyStore()
interaction_mode, specialist, lang = _resolve_channel_dispatch(store, channel="weixin", account=None)
assert interaction_mode == "expert"
assert specialist == "generalist"
assert lang == "auto"
def test_channel_dispatch_whatsapp_defaults_to_en() -> None:
store = _DummyStore()
interaction_mode, specialist, lang = _resolve_channel_dispatch(store, channel="whatsapp", account=None)
assert interaction_mode == "expert"
assert specialist == "generalist"
assert lang == "en"
def test_channel_dispatch_uses_global_settings() -> None:
store = _DummyStore(
{
"channel.dispatch.interaction_mode.whatsapp": "comprehensive",
"channel.dispatch.specialist.whatsapp": "ops",
"channel.dispatch.lang.whatsapp": "en",
}
)
interaction_mode, specialist, lang = _resolve_channel_dispatch(store, channel="whatsapp", account=None)
assert interaction_mode == "comprehensive"
assert specialist == "ops"
assert lang == "en"
def test_channel_dispatch_account_config_overrides_global() -> None:
store = _DummyStore(
{
"channel.dispatch.interaction_mode.weixin": "comprehensive",
"channel.dispatch.specialist.weixin": "ops",
"channel.dispatch.lang.weixin": "zh",
}
)
account = {
"config": {
"interaction_mode": "expert",
"specialist": "generalist",
"lang": "en",
}
}
interaction_mode, specialist, lang = _resolve_channel_dispatch(store, channel="weixin", account=account)
assert interaction_mode == "expert"
assert specialist == "generalist"
assert lang == "en"