Coverage for docs_src/background_tasks/tutorial002_an.py: 100%

17 statements  

« prev     ^ index     » next       coverage.py v7.6.1, created at 2025-12-04 08:29 +0000

1from typing import Union 1hijklmn

2 

3from fastapi import BackgroundTasks, Depends, FastAPI 1hijklmn

4from typing_extensions import Annotated 1hijklmn

5 

6app = FastAPI() 1hijklmn

7 

8 

9def write_log(message: str): 1hijklmn

10 with open("log.txt", mode="a") as log: 1abcdefg

11 log.write(message) 1abcdefg

12 

13 

14def get_query(background_tasks: BackgroundTasks, q: Union[str, None] = None): 1hijklmn

15 if q: 1abcdefg

16 message = f"found query: {q}\n" 1abcdefg

17 background_tasks.add_task(write_log, message) 1abcdefg

18 return q 1abcdefg

19 

20 

21@app.post("/send-notification/{email}") 1hijklmn

22async def send_notification( 1hijklmn

23 email: str, background_tasks: BackgroundTasks, q: Annotated[str, Depends(get_query)] 

24): 

25 message = f"message to {email}\n" 1abcdefg

26 background_tasks.add_task(write_log, message) 1abcdefg

27 return {"message": "Message sent"} 1abcdefg