Coverage for src/fastapi_cloud_cli/commands/logout.py: 100%

18 statements  

« prev     ^ index     » next       coverage.py v7.16.0, created at 2026-11-09 00:25 +0000

1from typing import Any 1abcdefg

2 

3from pydantic import BaseModel 1abcdefg

4from rich_toolkit import RichToolkit 1abcdefg

5 

6from fastapi_cloud_cli._app import cloud_app 1abcdefg

7from fastapi_cloud_cli.utils.auth import delete_auth_config 1abcdefg

8from fastapi_cloud_cli.utils.cli import get_rich_toolkit 1abcdefg

9from fastapi_cloud_cli.utils.execution import JsonOutputOption 1abcdefg

10 

11 

12class LogoutOutput(BaseModel): 1abcdefg

13 logged_out: bool 1abcdefg

14 

15 

16def _render_logout_output(data: LogoutOutput, toolkit: RichToolkit) -> None: 1abhcdiefgj

17 toolkit.print_title("FastAPI Cloud") 1klhmnoipqrstju

18 toolkit.print_line() 1klhmnoipqrstju

19 toolkit.print("You are now logged out!", emoji="👋") 1klhmnoipqrstju

20 

21 

22@cloud_app.command() 1abcdefg

23def logout(json_output: JsonOutputOption = False) -> Any: 1abJcdKefgL

24 """ 

25 Logout from FastAPI Cloud. 

26 """ 

27 with get_rich_toolkit(json_output=json_output) as toolkit: 1vwklxyhmzAnoBCipDEqrFGstHIju

28 delete_auth_config() 1vwklxyhmzAnoBCipDEqrFGstHIju

29 toolkit.success( 1vwklxyhmzAnoBCipDEqrFGstHIju

30 LogoutOutput(logged_out=True), 

31 render_output=_render_logout_output, 

32 )