in testslide/runner.py [0:0]
def finish(self, not_executed_examples: List[Example]) -> None:
super().finish(not_executed_examples)
success = len(self.results["success"])
fail = len(self.results["fail"])
skip = len(self.results["skip"])
total = success + fail + skip
if self.results["fail"]:
self.print_red("\nFailures:")
for number, result in enumerate(self.results["fail"]):
result = cast(Dict[str, Union[Example, BaseException]], result)
print("")
self.print_failed_example( # type: ignore
number + 1, result["example"], result["exception"] # type: ignore
)
summary_lines = self._get_summary_lines(
total, success, fail, skip, len(not_executed_examples)
)
max_summary_len = max(
[len(self.remove_terminal_escape(line)) for line in summary_lines]
)
logo_lines = self._get_ascii_logo_lines()
max_logo_len = max(
[len(self.remove_terminal_escape(line)) for line in logo_lines]
)
try:
columns, _lines = os.get_terminal_size()
except OSError:
columns = 80
if columns > 80:
columns = 80
if max_summary_len + max_logo_len + 1 <= columns:
logo_start_column = (
columns - max_summary_len - max_logo_len - 2 + max_summary_len
)
for idx in range(len(summary_lines)):
print(
summary_lines[idx],
" "
* (
max_summary_len
- len(self.remove_terminal_escape(summary_lines[idx]))
+ (logo_start_column - max_summary_len)
),
end="",
)
print(logo_lines[idx])
else:
for idx in range(len(summary_lines)):
print(
summary_lines[idx],
)