def _get_line_with_reprcrash_message(config: Config, rep: BaseReport, termwidth: int) -> str: """Get summary line for a report, trying to add reprcrash message.""" verbose_word = rep._get_verbose_word(config) pos = _get_pos(config, rep) line = f"{verbose_word} {pos}" line_width = wcswidth(line) try: # Type ignored intentionally -- possible AttributeError expected. msg = rep.longrepr.reprcrash.message # type: ignore[union-attr] except AttributeError: pass else: available_width = termwidth - line_width msg = _format_trimmed(" - {}", msg, available_width) if msg is not None: line += msg return line
def _get_line_with_reprcrash_message( config: Config, rep: BaseReport, termwidth: int ) -> str: """Get summary line for a report, trying to add reprcrash message.""" verbose_word = rep._get_verbose_word(config) pos = _get_pos(config, rep) line = "{} {}".format(verbose_word, pos) len_line = wcswidth(line) ellipsis, len_ellipsis = "...", 3 if len_line > termwidth - len_ellipsis: # No space for an additional message. return line try: # Type ignored intentionally -- possible AttributeError expected. msg = rep.longrepr.reprcrash.message # type: ignore[union-attr] except AttributeError: pass else: # Only use the first line. i = msg.find("\n") if i != -1: msg = msg[:i] len_msg = wcswidth(msg) sep, len_sep = " - ", 3 max_len_msg = termwidth - len_line - len_sep if max_len_msg >= len_ellipsis: if len_msg > max_len_msg: max_len_msg -= len_ellipsis msg = msg[:max_len_msg] while wcswidth(msg) > max_len_msg: msg = msg[:-1] msg += ellipsis line += sep + msg return line