forked from retoor/devplacepy
Update
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
# retoor <retoor@molodetz.nl>
|
||||
|
||||
from devplacepy.services.devii.interaction.capabilities import (
|
||||
CHANNEL_CLI,
|
||||
CHANNEL_SITE_CHAT,
|
||||
CHANNEL_TELEGRAM,
|
||||
CHANNEL_UNKNOWN,
|
||||
channel_id_for_session,
|
||||
context_for,
|
||||
fragment_for,
|
||||
interactions_enabled,
|
||||
)
|
||||
|
||||
|
||||
def test_session_channel_mapping():
|
||||
assert channel_id_for_session("main") == CHANNEL_SITE_CHAT
|
||||
assert channel_id_for_session("docs") == CHANNEL_SITE_CHAT
|
||||
assert channel_id_for_session("telegram") == CHANNEL_TELEGRAM
|
||||
assert channel_id_for_session("cli") == CHANNEL_CLI
|
||||
assert channel_id_for_session("nope") == CHANNEL_UNKNOWN
|
||||
|
||||
|
||||
def test_site_context_exposes_ui_prompt(local_db):
|
||||
ctx = context_for(CHANNEL_SITE_CHAT, owner_kind="user", owner_id="u1")
|
||||
assert ctx.capabilities["rich_widgets"] is True
|
||||
assert "ui_prompt" in ctx.tools
|
||||
assert "ui_cancel" in ctx.tools
|
||||
assert "ui_notify" in ctx.tools
|
||||
assert "interactions_get" in ctx.tools
|
||||
assert "interactions_set" in ctx.tools
|
||||
|
||||
|
||||
def test_open_interaction_gates_to_cancel_only(local_db):
|
||||
ctx = context_for(
|
||||
CHANNEL_SITE_CHAT,
|
||||
open_interaction_id="ix-abc",
|
||||
owner_kind="user",
|
||||
owner_id="u1",
|
||||
)
|
||||
assert "ui_cancel" in ctx.tools
|
||||
assert "ui_prompt" not in ctx.tools
|
||||
assert "interactions_get" in ctx.tools
|
||||
|
||||
|
||||
def test_unknown_channel_has_no_ui_prompt(local_db):
|
||||
ctx = context_for(CHANNEL_UNKNOWN, owner_kind="user", owner_id="u1")
|
||||
assert "ui_prompt" not in ctx.tools
|
||||
assert ctx.capabilities["confirm"] is False
|
||||
assert "interactions_get" in ctx.tools
|
||||
|
||||
|
||||
def test_fragment_is_compact(local_db):
|
||||
text = fragment_for(context_for(CHANNEL_TELEGRAM, owner_kind="guest"))
|
||||
assert "CHANNEL: telegram" in text
|
||||
assert "TOOLS: ui_prompt" in text
|
||||
assert "INTERACTION: none" in text
|
||||
assert len(text) < 600
|
||||
|
||||
|
||||
def test_interactions_enabled_default(local_db):
|
||||
assert interactions_enabled("guest", "") is True
|
||||
Reference in New Issue
Block a user