mirror of
				https://github.com/nonebot/nonebot2.git
				synced 2025-10-30 22:46:40 +00: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
 |