Coverage for /home/crpier/Projects/snektest/snektest/presenter/__init__.py: 78%
23 statements
« prev ^ index » next coverage.py v7.14.1, created at 2026-06-07 00:30 +0300
« prev ^ index » next coverage.py v7.14.1, created at 2026-06-07 00:30 +0300
1from rich.console import Console
3from snektest.models import (
4 ErrorResult,
5 FailedResult,
6 PassedResult,
7 TeardownFailure,
8 TestResult,
9)
10from snektest.presenter.errors import print_failures as _print_failures
11from snektest.presenter.summary import print_summary as _print_summary
13console = Console()
16def print_error(exc: str) -> None:
17 """Print an error message in red."""
18 console.print(exc, markup=False, style="red")
21def print_test_result_to_console(console: Console, result: TestResult) -> None:
22 console.print(
23 f"{result.name!s} ... ",
24 end="",
25 markup=False,
26 highlight=False,
27 soft_wrap=True,
28 )
29 match result.result:
30 case PassedResult():
31 console.print(
32 f"OK ({result.duration:.2f}s)",
33 highlight=False,
34 style="green",
35 markup=False,
36 soft_wrap=True,
37 )
38 case FailedResult():
39 console.print(
40 f"FAIL ({result.duration:.2f}s)",
41 highlight=False,
42 style="red",
43 markup=False,
44 soft_wrap=True,
45 )
46 case ErrorResult():
47 console.print(
48 f"ERROR ({result.duration:.2f}s)",
49 highlight=False,
50 style="dark_orange",
51 markup=False,
52 soft_wrap=True,
53 )
56def print_test_result(result: TestResult) -> None:
57 """Print the result of a single test."""
58 print_test_result_to_console(console, result)
61def print_failures(
62 test_results: list[TestResult],
63 session_teardown_failures: list[TeardownFailure] | None = None,
64 session_teardown_output: str | None = None,
65) -> None:
66 """Print all failures."""
67 _print_failures(
68 console,
69 test_results,
70 session_teardown_failures=session_teardown_failures,
71 session_teardown_output=session_teardown_output,
72 )
75def print_summary(
76 test_results: list[TestResult],
77 total_duration: float,
78 session_teardown_failures: list[TeardownFailure] | None = None,
79) -> None:
80 """Print test summary."""
81 _print_summary(
82 console,
83 test_results,
84 total_duration,
85 session_teardown_failures=session_teardown_failures,
86 )
89__all__ = [
90 "console",
91 "print_error",
92 "print_failures",
93 "print_summary",
94 "print_test_result",
95 "print_test_result_to_console",
96]