Coverage for src/local_deep_research/web/dependencies/flash.py: 100%

10 statements  

« prev     ^ index     » next       coverage.py v7.16.0, created at 2026-09-06 15:42 +0000

1""" 

2Flash message support for FastAPI. 

3 

4Replaces Flask's flash() and get_flashed_messages(). 

5Messages are stored in the session and cleared after retrieval. 

6""" 

7 

8from fastapi import Request 

9 

10 

11def flash(request: Request, message: str, category: str = "info") -> None: 

12 """Add a flash message to the session. 

13 

14 Args: 

15 request: The current request. 

16 message: The message text. 

17 category: Message category (error, success, info, warning). 

18 """ 

19 messages = request.session.get("_flashes", []) 

20 messages.append((category, message)) 

21 request.session["_flashes"] = messages 

22 

23 

24def get_flashed_messages(request: Request, with_categories: bool = False): 

25 """Retrieve and clear flash messages from the session. 

26 

27 Args: 

28 request: The current request. 

29 with_categories: If True, return list of (category, message) tuples. 

30 

31 Returns: 

32 List of messages or (category, message) tuples. 

33 """ 

34 messages = request.session.pop("_flashes", []) 

35 if with_categories: 

36 return messages 

37 return [msg for _, msg in messages]