chore: import upstream snapshot with attribution
This commit is contained in:
@@ -0,0 +1,76 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import pytest
|
||||
|
||||
from opensquilla.engine.commands import (
|
||||
DEFAULT_REGISTRY,
|
||||
ExecutionKind,
|
||||
Surface,
|
||||
parse_surface,
|
||||
)
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
("raw", "surface"),
|
||||
[
|
||||
("web_chat", Surface.WEB_CHAT),
|
||||
("web", Surface.WEB_CHAT),
|
||||
("cli_gateway", Surface.CLI_GATEWAY),
|
||||
("tui", Surface.CLI_GATEWAY),
|
||||
("cli", Surface.CLI_GATEWAY),
|
||||
("cli_standalone", Surface.CLI_STANDALONE),
|
||||
("channel", Surface.CHANNEL),
|
||||
],
|
||||
)
|
||||
def test_parse_surface_accepts_new_and_legacy_names(raw: str, surface: Surface) -> None:
|
||||
assert parse_surface(raw) is surface
|
||||
|
||||
|
||||
def test_usage_execution_surfaces_and_methods() -> None:
|
||||
cmd = DEFAULT_REGISTRY.find("/usage")
|
||||
assert cmd is not None
|
||||
|
||||
assert cmd.surfaces == frozenset(
|
||||
{Surface.WEB_CHAT, Surface.CLI_GATEWAY, Surface.CHANNEL}
|
||||
)
|
||||
assert cmd.execution_for(Surface.CLI_STANDALONE) is None
|
||||
|
||||
for surface in (Surface.WEB_CHAT, Surface.CLI_GATEWAY, Surface.CHANNEL):
|
||||
execution = cmd.execution_for(surface)
|
||||
assert execution is not None
|
||||
assert execution.kind is ExecutionKind.RPC
|
||||
assert execution.action == "usage.status"
|
||||
assert execution.rpc_method == "usage.status"
|
||||
|
||||
|
||||
def test_deprecated_rpc_properties_project_channel_execution() -> None:
|
||||
cmd = DEFAULT_REGISTRY.find("/history", Surface.CHANNEL)
|
||||
assert cmd is not None
|
||||
|
||||
assert cmd.rpc_method == "chat.history"
|
||||
assert cmd.rpc_params is not None
|
||||
envelope = type("Envelope", (), {"session_key": "session-123"})()
|
||||
assert cmd.rpc_params(envelope) == {"sessionKey": "session-123"}
|
||||
|
||||
|
||||
def test_file_is_cli_gateway_local_action_only() -> None:
|
||||
cmd = DEFAULT_REGISTRY.find("/file", Surface.CLI_GATEWAY)
|
||||
assert cmd is not None
|
||||
assert cmd.surfaces == frozenset({Surface.CLI_GATEWAY})
|
||||
|
||||
execution = cmd.execution_for(Surface.CLI_GATEWAY)
|
||||
assert execution is not None
|
||||
assert execution.kind is ExecutionKind.LOCAL
|
||||
assert execution.action == "cli.file"
|
||||
assert execution.rpc_method is None
|
||||
|
||||
assert DEFAULT_REGISTRY.find("/file", Surface.WEB_CHAT) is None
|
||||
assert DEFAULT_REGISTRY.find("/file", Surface.CHANNEL) is None
|
||||
assert DEFAULT_REGISTRY.find("/file", Surface.CLI_STANDALONE) is None
|
||||
|
||||
|
||||
def test_aliases_resolve_for_visible_surface_only() -> None:
|
||||
assert DEFAULT_REGISTRY.find("/clear", Surface.WEB_CHAT).name == "/reset" # type: ignore[union-attr]
|
||||
assert DEFAULT_REGISTRY.find("/clear", Surface.CHANNEL).name == "/reset" # type: ignore[union-attr]
|
||||
assert DEFAULT_REGISTRY.find("/session", Surface.CHANNEL).name == "/status" # type: ignore[union-attr]
|
||||
assert DEFAULT_REGISTRY.find("/session", Surface.WEB_CHAT) is None
|
||||
Reference in New Issue
Block a user