Coverage for tests / test_tracebacks.py: 100%
26 statements
« prev ^ index » next coverage.py v7.13.1, created at 2026-02-09 12:36 +0000
« prev ^ index » next coverage.py v7.13.1, created at 2026-02-09 12:36 +0000
1import os 1abcdefgh
2import subprocess 1abcdefgh
3import sys 1abcdefgh
4from pathlib import Path 1abcdefgh
7def test_traceback_no_rich(): 1abcdefgh
8 file_path = Path(__file__).parent / "assets/type_error_no_rich.py" 1abcdefgh
9 result = subprocess.run( 1abcdefgh
10 [sys.executable, "-m", "coverage", "run", str(file_path)],
11 capture_output=True,
12 encoding="utf-8",
13 env={
14 **os.environ,
15 "TYPER_STANDARD_TRACEBACK": "",
16 "_TYPER_STANDARD_TRACEBACK": "",
17 },
18 )
19 assert "return get_command(self)(*args, **kwargs)" not in result.stderr 1abcdefgh
21 assert "app()" in result.stderr 1abcdefgh
22 assert "print(name + 3)" in result.stderr 1abcdefgh
23 assert 'TypeError: can only concatenate str (not "int") to str' in result.stderr 1abcdefgh
26def test_traceback_no_rich_short_disable(): 1abcdefgh
27 file_path = Path(__file__).parent / "assets/type_error_no_rich_short_disable.py" 1abcdefgh
28 result = subprocess.run( 1abcdefgh
29 [sys.executable, "-m", "coverage", "run", str(file_path)],
30 capture_output=True,
31 encoding="utf-8",
32 env={
33 **os.environ,
34 "TYPER_STANDARD_TRACEBACK": "",
35 "_TYPER_STANDARD_TRACEBACK": "",
36 },
37 )
38 assert "return get_command(self)(*args, **kwargs)" not in result.stderr 1abcdefgh
40 assert "app()" in result.stderr 1abcdefgh
41 assert "print(name + 3)" in result.stderr 1abcdefgh
42 assert 'TypeError: can only concatenate str (not "int") to str' in result.stderr 1abcdefgh
45def test_unmodified_traceback(): 1abcdefgh
46 file_path = Path(__file__).parent / "assets/type_error_normal_traceback.py" 1abcdefgh
47 result = subprocess.run( 1abcdefgh
48 [sys.executable, "-m", "coverage", "run", str(file_path)],
49 capture_output=True,
50 encoding="utf-8",
51 env={
52 **os.environ,
53 "TYPER_STANDARD_TRACEBACK": "",
54 "_TYPER_STANDARD_TRACEBACK": "",
55 },
56 )
57 assert "morty" in result.stdout, "the call to the first app should work normally" 1abcdefgh
58 assert "return callback(**use_params)" in result.stderr, ( 1abcdefgh
59 "calling outside of Typer should show the normal traceback, "
60 "even after the hook is installed"
61 )
62 assert "typer.main.get_command(broken_app)()" in result.stderr 1abcdefgh
63 assert "print(name + 3)" in result.stderr 1abcdefgh
64 assert 'TypeError: can only concatenate str (not "int") to str' in result.stderr 1abcdefgh