Coverage for tests / test_exit_errors.py: 100%

36 statements  

« prev     ^ index     » next       coverage.py v7.13.1, created at 2026-02-09 12:36 +0000

1import errno 1abcdefgh

2 

3import typer 1abcdefgh

4import typer.completion 1abcdefgh

5from typer.testing import CliRunner 1abcdefgh

6 

7runner = CliRunner() 1abcdefgh

8 

9 

10def test_eoferror(): 1abcdefgh

11 # Mainly for coverage/completeness 

12 app = typer.Typer() 1abcdefgh

13 

14 @app.command() 1abcdefgh

15 def main(): 1abcdefgh

16 raise EOFError() 1abcdefgh

17 

18 result = runner.invoke(app) 1abcdefgh

19 assert result.exit_code == 1 1abcdefgh

20 

21 

22def test_keyboardinterrupt(): 1abcdefgh

23 # Mainly for coverage/completeness 

24 app = typer.Typer() 1abcdefgh

25 

26 @app.command() 1abcdefgh

27 def main(): 1abcdefgh

28 raise KeyboardInterrupt() 1abcdefgh

29 

30 result = runner.invoke(app) 1abcdefgh

31 assert result.exit_code == 130 1abcdefgh

32 assert result.stdout == "" 1abcdefgh

33 

34 

35def test_oserror(): 1abcdefgh

36 # Mainly for coverage/completeness 

37 app = typer.Typer() 1abcdefgh

38 

39 @app.command() 1abcdefgh

40 def main(): 1abcdefgh

41 e = OSError() 1abcdefgh

42 e.errno = errno.EPIPE 1abcdefgh

43 raise e 1abcdefgh

44 

45 result = runner.invoke(app) 1abcdefgh

46 assert result.exit_code == 1 1abcdefgh

47 

48 

49def test_oserror_no_epipe(): 1abcdefgh

50 # Mainly for coverage/completeness 

51 app = typer.Typer() 1abcdefgh

52 

53 @app.command() 1abcdefgh

54 def main(): 1abcdefgh

55 raise OSError() 1abcdefgh

56 

57 result = runner.invoke(app) 1abcdefgh

58 assert result.exit_code == 1 1abcdefgh