mirror of
https://github.com/AstrBotDevs/AstrBot
synced 2026-07-16 01:40:15 +08:00
58 lines
1.9 KiB
Python
58 lines
1.9 KiB
Python
"""Tests for protocol package exports."""
|
|
|
|
from __future__ import annotations
|
|
|
|
from astrbot_sdk.protocol import (
|
|
CapabilityDescriptor,
|
|
CommandTrigger,
|
|
ErrorPayload,
|
|
EventMessage,
|
|
HandlerDescriptor,
|
|
InitializeMessage,
|
|
LegacyAdapter,
|
|
LegacyRequest,
|
|
MessageTrigger,
|
|
PeerInfo,
|
|
ProtocolMessage,
|
|
ResultMessage,
|
|
ScheduleTrigger,
|
|
parse_legacy_message,
|
|
parse_message,
|
|
)
|
|
|
|
|
|
class TestProtocolPackageExports:
|
|
"""Ensure protocol package exposes the intended public surface."""
|
|
|
|
def test_core_exports_are_importable(self):
|
|
"""Core protocol models and parsers should be importable from package root."""
|
|
handler = HandlerDescriptor(
|
|
id="demo.handler",
|
|
trigger=CommandTrigger(command="hello"),
|
|
)
|
|
message = InitializeMessage(
|
|
id="msg-1",
|
|
protocol_version="1.0",
|
|
peer=PeerInfo(name="plugin", role="plugin"),
|
|
handlers=[handler],
|
|
)
|
|
parsed: ProtocolMessage = parse_message(message)
|
|
|
|
assert isinstance(parsed, InitializeMessage)
|
|
assert isinstance(ErrorPayload(code="x", message="y"), ErrorPayload)
|
|
assert isinstance(
|
|
CapabilityDescriptor(name="llm.chat", description="chat"),
|
|
CapabilityDescriptor,
|
|
)
|
|
assert isinstance(MessageTrigger(keywords=["hello"]), MessageTrigger)
|
|
assert isinstance(ScheduleTrigger(interval_seconds=60), ScheduleTrigger)
|
|
assert isinstance(EventMessage(id="evt-1", phase="started"), EventMessage)
|
|
assert isinstance(ResultMessage(id="res-1", success=True), ResultMessage)
|
|
|
|
def test_legacy_exports_are_importable(self):
|
|
"""Legacy adapter helpers should also be available from package root."""
|
|
legacy = parse_legacy_message({"jsonrpc": "2.0", "method": "handshake"})
|
|
|
|
assert isinstance(legacy, LegacyRequest)
|
|
assert isinstance(LegacyAdapter(), LegacyAdapter)
|