nonebot2/tests/plugins/param/param_depend.py
2021-12-20 14:50:11 +08:00

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