Coverage for tests/test_tutorial/test_exceptions/test_tutorial002.py: 100%

26 statements  

« prev     ^ index     » next       coverage.py v7.6.1, created at 2025-04-14 00:18 +0000

1import os 1abcdefghi

2import subprocess 1abcdefghi

3import sys 1abcdefghi

4from pathlib import Path 1abcdefghi

5 

6from typer.testing import CliRunner 1abcdefghi

7 

8from docs_src.exceptions import tutorial002 as mod 1abcdefghi

9 

10runner = CliRunner() 1abcdefghi

11 

12 

13def test_traceback_rich(): 1abcdefghi

14 file_path = Path(mod.__file__) 1abcdefghi

15 result = subprocess.run( 1abcdefghi

16 [sys.executable, "-m", "coverage", "run", str(file_path), "secret"], 

17 capture_output=True, 

18 encoding="utf-8", 

19 env={**os.environ, "_TYPER_STANDARD_TRACEBACK": ""}, 

20 ) 

21 assert "return get_command(self)(*args, **kwargs)" not in result.stderr 1abcdefghi

22 

23 assert "app()" not in result.stderr 1abcdefghi

24 assert "print(password + 3)" in result.stderr 1abcdefghi

25 assert 'TypeError: can only concatenate str (not "int") to str' in result.stderr 1abcdefghi

26 assert "name = 'morty'" not in result.stderr 1abcdefghi

27 

28 

29def test_standard_traceback_env_var(): 1abcdefghi

30 file_path = Path(mod.__file__) 1abcdefghi

31 result = subprocess.run( 1abcdefghi

32 [sys.executable, "-m", "coverage", "run", str(file_path), "secret"], 

33 capture_output=True, 

34 encoding="utf-8", 

35 env={**os.environ, "_TYPER_STANDARD_TRACEBACK": "1"}, 

36 ) 

37 assert "return get_command(self)(*args, **kwargs)" in result.stderr 1abcdefghi

38 

39 assert "app()" in result.stderr 1abcdefghi

40 assert "print(password + 3)" in result.stderr 1abcdefghi

41 assert 'TypeError: can only concatenate str (not "int") to str' in result.stderr 1abcdefghi

42 assert "name = 'morty'" not in result.stderr 1abcdefghi

43 

44 

45def test_script(): 1abcdefghi

46 result = subprocess.run( 1abcdefghi

47 [sys.executable, "-m", "coverage", "run", mod.__file__, "--help"], 

48 capture_output=True, 

49 encoding="utf-8", 

50 ) 

51 assert "Usage" in result.stdout 1abcdefghi