summaryrefslogtreecommitdiff
path: root/src/_pytest/skipping.py
diff options
context:
space:
mode:
authorDaniel Hahler <git@thequod.de>2019-04-04 22:13:28 +0200
committerDaniel Hahler <git@thequod.de>2019-04-04 22:13:28 +0200
commit37ecca3ba9b1715735ec745b975f75327c3261b7 (patch)
treed7f010834f7d80b909f907bfefbba47b084fbfbe /src/_pytest/skipping.py
parent3d0ecd03ed554442b43b1eb4c04d8bab2a99f4f4 (diff)
downloadpytest-37ecca3ba9b1715735ec745b975f75327c3261b7.tar.gz
factor out _get_line_with_reprcrash_message
Diffstat (limited to 'src/_pytest/skipping.py')
-rw-r--r--src/_pytest/skipping.py58
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)