mirror of
https://github.com/nonebot/nonebot2.git
synced 2024-11-24 00:55:07 +08:00
✅ add more depend test case
This commit is contained in:
parent
0d24a79840
commit
c49059f9d3
@ -1,5 +1,6 @@
|
||||
from dataclasses import dataclass
|
||||
|
||||
from nonebot import on_message
|
||||
from nonebot.adapters import Event
|
||||
from nonebot.params import Depends
|
||||
|
||||
test_depends = on_message()
|
||||
@ -17,6 +18,20 @@ def parameterless():
|
||||
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)):
|
||||
@ -28,3 +43,7 @@ async def depends(x: int = Depends(dependency)):
|
||||
async def depends_cache(y: int = Depends(dependency, use_cache=True)):
|
||||
# test cache
|
||||
return y
|
||||
|
||||
|
||||
async def class_depend(c: ClassDependency = Depends()):
|
||||
return c
|
||||
|
@ -8,7 +8,13 @@ from utils import load_plugin, make_fake_event, make_fake_message
|
||||
async def test_depend(app: App, load_plugin):
|
||||
from nonebot.params import DependParam
|
||||
|
||||
from plugins.param.param_depend import runned, depends, test_depends
|
||||
from plugins.param.param_depend import (
|
||||
ClassDependency,
|
||||
runned,
|
||||
depends,
|
||||
class_depend,
|
||||
test_depends,
|
||||
)
|
||||
|
||||
async with app.test_dependent(depends, allow_types=[DependParam]) as ctx:
|
||||
ctx.should_return(1)
|
||||
@ -24,6 +30,9 @@ async def test_depend(app: App, load_plugin):
|
||||
|
||||
assert len(runned) == 2 and runned[0] == runned[1] == 1
|
||||
|
||||
async with app.test_dependent(class_depend, allow_types=[DependParam]) as ctx:
|
||||
ctx.should_return(ClassDependency(x=1, y=2))
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_bot(app: App, load_plugin):
|
||||
|
Loading…
Reference in New Issue
Block a user