add test case

This commit is contained in:
yanyongyu 2020-12-20 12:09:30 +08:00
parent 1b00fe7921
commit e44cde0600
2 changed files with 29 additions and 12 deletions

View File

@ -159,17 +159,29 @@ class Matcher(metaclass=MatcherMeta):
NewMatcher = type( NewMatcher = type(
"Matcher", (Matcher,), { "Matcher", (Matcher,), {
"module": module, "module":
"type": type_, module,
"rule": rule or Rule(), "type":
"permission": permission or Permission(), type_,
"handlers": handlers or [], "rule":
"temp": temp, rule or Rule(),
"expire_time": expire_time, "permission":
"priority": priority, permission or Permission(),
"block": block, "handlers":
"_default_state": default_state or {}, handlers or [],
"_default_state_factory": default_state_factory "temp":
temp,
"expire_time":
expire_time,
"priority":
priority,
"block":
block,
"_default_state":
default_state or {},
"_default_state_factory":
staticmethod(default_state_factory)
if default_state_factory else None
}) })
matchers[priority].append(NewMatcher) matchers[priority].append(NewMatcher)

View File

@ -8,9 +8,14 @@ async def heartbeat(bot: Bot, event: Event, state: T_State) -> bool:
return isinstance(event, HeartbeatMetaEvent) return isinstance(event, HeartbeatMetaEvent)
test_matcher = on_metaevent(heartbeat) async def factory(bot: Bot, event: Event) -> T_State:
return {"factory": True}
test_matcher = on_metaevent(heartbeat, state_factory=factory)
@test_matcher.receive() @test_matcher.receive()
async def handle_heartbeat(bot: Bot, event: Event, state: T_State): async def handle_heartbeat(bot: Bot, event: Event, state: T_State):
print(state)
print("[i] Heartbeat") print("[i] Heartbeat")