Coverage for tests / test_exit_errors.py: 100%

36 statements  

« prev     ^ index     » next       coverage.py v7.13.1, created at 2026-03-26 21:46 +0000

1import errno 1abcdefg

2 

3import typer 1abcdefg

4import typer.completion 1abcdefg

5from typer.testing import CliRunner 1abcdefg

6 

7runner = CliRunner() 1abcdefg

8 

9 

10def test_eoferror(): 1abcdefg

11 # Mainly for coverage/completeness 

12 app = typer.Typer() 1abcdefg

13 

14 @app.command() 1abcdefg

15 def main(): 1abcdefg

16 raise EOFError() 1abcdefg

17 

18 result = runner.invoke(app) 1abcdefg

19 assert result.exit_code == 1 1abcdefg

20 

21 

22def test_keyboardinterrupt(): 1abcdefg

23 # Mainly for coverage/completeness 

24 app = typer.Typer() 1abcdefg

25 

26 @app.command() 1abcdefg

27 def main(): 1abcdefg

28 raise KeyboardInterrupt() 1abcdefg

29 

30 result = runner.invoke(app) 1abcdefg

31 assert result.exit_code == 130 1abcdefg

32 assert result.stdout == "" 1abcdefg

33 

34 

35def test_oserror(): 1abcdefg

36 # Mainly for coverage/completeness 

37 app = typer.Typer() 1abcdefg

38 

39 @app.command() 1abcdefg

40 def main(): 1abcdefg

41 e = OSError() 1abcdefg

42 e.errno = errno.EPIPE 1abcdefg

43 raise e 1abcdefg

44 

45 result = runner.invoke(app) 1abcdefg

46 assert result.exit_code == 1 1abcdefg

47 

48 

49def test_oserror_no_epipe(): 1abcdefg

50 # Mainly for coverage/completeness 

51 app = typer.Typer() 1abcdefg

52 

53 @app.command() 1abcdefg

54 def main(): 1abcdefg

55 raise OSError() 1abcdefg

56 

57 result = runner.invoke(app) 1abcdefg

58 assert result.exit_code == 1 1abcdefg