mirror of
https://github.com/nonebot/nonebot2.git
synced 2024-12-05 03:24:53 +08:00
50 lines
800 B
Python
50 lines
800 B
Python
from dataclasses import dataclass
|
|
|
|
from nonebot import on_message
|
|
from nonebot.params import Depends
|
|
|
|
test_depends = on_message()
|
|
|
|
runned = []
|
|
|
|
|
|
def dependency():
|
|
runned.append(1)
|
|
return 1
|
|
|
|
|
|
def parameterless():
|
|
assert len(runned) == 0
|
|
runned.append(1)
|
|
|
|
|
|
def gen_sync():
|
|
yield 1
|
|
|
|
|
|
async def gen_async():
|
|
yield 2
|
|
|
|
|
|
@dataclass
|
|
class ClassDependency:
|
|
x: int = Depends(gen_sync)
|
|
y: int = Depends(gen_async)
|
|
|
|
|
|
# test parameterless
|
|
@test_depends.handle(parameterless=[Depends(parameterless)])
|
|
async def depends(x: int = Depends(dependency)):
|
|
# test dependency
|
|
return x
|
|
|
|
|
|
@test_depends.handle()
|
|
async def depends_cache(y: int = Depends(dependency, use_cache=True)):
|
|
# test cache
|
|
return y
|
|
|
|
|
|
async def class_depend(c: ClassDependency = Depends()):
|
|
return c
|