Coverage for tests/test_exit_errors.py: 100%

36 statements  

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

1import errno 1abcdefghi

2 

3import typer 1abcdefghi

4import typer.completion 1abcdefghi

5from typer.testing import CliRunner 1abcdefghi

6 

7runner = CliRunner() 1abcdefghi

8 

9 

10def test_eoferror(): 1abcdefghi

11 # Mainly for coverage/completeness 

12 app = typer.Typer() 1abcdefghi

13 

14 @app.command() 1abcdefghi

15 def main(): 1abcdefghi

16 raise EOFError() 1abcdefghi

17 

18 result = runner.invoke(app) 1abcdefghi

19 assert result.exit_code == 1 1abcdefghi

20 

21 

22def test_keyboardinterrupt(): 1abcdefghi

23 # Mainly for coverage/completeness 

24 app = typer.Typer() 1abcdefghi

25 

26 @app.command() 1abcdefghi

27 def main(): 1abcdefghi

28 raise KeyboardInterrupt() 1abcdefghi

29 

30 result = runner.invoke(app) 1abcdefghi

31 assert result.exit_code == 130 1abcdefghi

32 assert result.stdout == "" 1abcdefghi

33 

34 

35def test_oserror(): 1abcdefghi

36 # Mainly for coverage/completeness 

37 app = typer.Typer() 1abcdefghi

38 

39 @app.command() 1abcdefghi

40 def main(): 1abcdefghi

41 e = OSError() 1abcdefghi

42 e.errno = errno.EPIPE 1abcdefghi

43 raise e 1abcdefghi

44 

45 result = runner.invoke(app) 1abcdefghi

46 assert result.exit_code == 1 1abcdefghi

47 

48 

49def test_oserror_no_epipe(): 1abcdefghi

50 # Mainly for coverage/completeness 

51 app = typer.Typer() 1abcdefghi

52 

53 @app.command() 1abcdefghi

54 def main(): 1abcdefghi

55 raise OSError() 1abcdefghi

56 

57 result = runner.invoke(app) 1abcdefghi

58 assert result.exit_code == 1 1abcdefghi