qqbotsdk: QQ 官方机器人 SDK(协议层/DI/业务 API/测试/文档)

This commit is contained in:
snowy-yang committed 2026-09-11 19:49:17 +08:00
commit 0c364bf803
32 files changed
+3760

No files matched your search

+37
View File
@@ -0,0 +1,37 @@
import pytest
from qqbotsdk.emitter import EventEmitter
from qqbotsdk.model import Opcode
from qqbotsdk.queue import EventQueue
@pytest.fixture
def emitter() -> EventEmitter:
return EventEmitter(EventQueue())
def test_route_dispatch_uses_t(emitter: EventEmitter):
routed = emitter._route({"op": Opcode.DISPATCH, "t": "READY", "d": {}})
assert routed is not None
op, name, event = routed
assert op == Opcode.DISPATCH
assert name == "READY"
assert event.type == "READY"
def test_route_non_dispatch_uses_opcode_name(emitter: EventEmitter):
routed = emitter._route({"op": Opcode.HELLO, "d": {"heartbeat_interval": 1}})
assert routed is not None
assert routed[1] == "HELLO"
def test_route_rejects_missing_op(emitter: EventEmitter):
assert emitter._route({"d": {}}) is None
def test_route_rejects_unknown_opcode(emitter: EventEmitter):
assert emitter._route({"op": 999}) is None
def test_route_rejects_dispatch_without_t(emitter: EventEmitter):
assert emitter._route({"op": Opcode.DISPATCH, "d": {}}) is None