mirror of
https://github.com/hansjone/oclaw.git
synced 2026-10-09 07:03:15 +08:00
- List/delete chat sessions for administrator by username (cross-tenant UUID) - Return 404 when delete does not remove a session; add tests - Weixin: dispatch lang, inbound attachments, reply persist, native reply timeout - PG compat scrub and administrator session delete repo path - RUNBOOK: WhatsApp re-bind with Remove-Item auth; weixin poll diag scripts Co-authored-by: Cursor <cursoragent@cursor.com>
57 lines
1.8 KiB
Python
57 lines
1.8 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_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"
|
|
|