diff options
author | Daniel Hahler <git@thequod.de> | 2019-04-04 22:13:28 +0200 |
---|---|---|
committer | Daniel Hahler <git@thequod.de> | 2019-04-04 22:13:28 +0200 |
commit | 37ecca3ba9b1715735ec745b975f75327c3261b7 (patch) | |
tree | d7f010834f7d80b909f907bfefbba47b084fbfbe /src | |
parent | 3d0ecd03ed554442b43b1eb4c04d8bab2a99f4f4 (diff) | |
download | pytest-37ecca3ba9b1715735ec745b975f75327c3261b7.tar.gz |
factor out _get_line_with_reprcrash_message
Diffstat (limited to 'src')
-rw-r--r-- | src/_pytest/skipping.py | 58 |
1 files changed, 38 insertions, 20 deletions
diff --git a/src/_pytest/skipping.py b/src/_pytest/skipping.py index 9abed5b1f..e72eecccf 100644 --- a/src/_pytest/skipping.py +++ b/src/_pytest/skipping.py @@ -204,31 +204,49 @@ def pytest_terminal_summary(terminalreporter): tr._tw.line(line) +def _get_line_with_reprcrash_message(config, rep, termwidth): + """Get summary line for a report, trying to add reprcrash message.""" + verbose_word = _get_report_str(config, rep) + pos = _get_pos(config, rep) + + line = "%s %s" % (verbose_word, pos) + + len_line = len(line) + ellipsis = "..." + len_ellipsis = len(ellipsis) + + if len_line > termwidth - len_ellipsis: + # No space for an additional message. + return line + + try: + msg = rep.longrepr.reprcrash.message + except AttributeError: + pass + else: + # Only use the first line. + i = msg.find("\n") + if i != -1: + msg = msg[:i] + len_msg = len(msg) + + sep = ": " + len_sep = len(sep) + max_len = termwidth - len_line - len_sep + if max_len >= len_ellipsis: + if len_msg > max_len: + msg = msg[: (max_len - len_ellipsis)] + ellipsis + line += sep + msg + return line + + def show_simple(terminalreporter, lines, stat): failed = terminalreporter.stats.get(stat) if failed: config = terminalreporter.config + termwidth = terminalreporter.writer.fullwidth for rep in failed: - verbose_word = _get_report_str(config, rep) - pos = _get_pos(config, rep) - - line = "%s %s" % (verbose_word, pos) - try: - msg = rep.longrepr.reprcrash.message - except AttributeError: - pass - else: - # Only use the first line. - # Might be worth having a short_message property, which - # could default to this behavior. - i = msg.find("\n") - if i != -1: - msg = msg[:i] - max_len = terminalreporter.writer.fullwidth - len(line) - 2 - if len(msg) > max_len: - msg = msg[: (max_len - 1)] + "…" - line += ": %s" % msg - + line = _get_line_with_reprcrash_message(config, rep, termwidth) lines.append(line) |