summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBruno Oliveira <nicoddemus@gmail.com>2020-09-03 07:14:32 -0300
committerBruno Oliveira <nicoddemus@gmail.com>2020-09-03 07:44:45 -0300
commit9f672c85c514e08949c36fd8292dc8e248b9461f (patch)
tree703551a77dc66d6c486916180c4eb0d81be4875c /src
parent91dbdb60930e1b573de366cbe7be6dac77ba200f (diff)
downloadpytest-9f672c85c514e08949c36fd8292dc8e248b9461f.tar.gz
Fix handle of exceptions in ReprEntry with tb=line
Fix #7707
Diffstat (limited to 'src')
-rw-r--r--src/_pytest/_code/code.py24
1 files changed, 10 insertions, 14 deletions
diff --git a/src/_pytest/_code/code.py b/src/_pytest/_code/code.py
index 96fa9199b..12d39306a 100644
--- a/src/_pytest/_code/code.py
+++ b/src/_pytest/_code/code.py
@@ -1049,25 +1049,21 @@ class ReprEntry(TerminalRepr):
# such as "> assert 0"
fail_marker = "{} ".format(FormattedExcinfo.fail_marker)
indent_size = len(fail_marker)
- indents = []
- source_lines = []
- failure_lines = []
- seeing_failures = False
- for line in self.lines:
- is_source_line = not line.startswith(fail_marker)
- if is_source_line:
- assert not seeing_failures, (
- "Unexpected failure lines between source lines:\n"
- + "\n".join(self.lines)
- )
+ indents = [] # type: List[str]
+ source_lines = [] # type: List[str]
+ failure_lines = [] # type: List[str]
+ for index, line in enumerate(self.lines):
+ is_failure_line = line.startswith(fail_marker)
+ if is_failure_line:
+ # from this point on all lines are considered part of the failure
+ failure_lines.extend(self.lines[index:])
+ break
+ else:
if self.style == "value":
source_lines.append(line)
else:
indents.append(line[:indent_size])
source_lines.append(line[indent_size:])
- else:
- seeing_failures = True
- failure_lines.append(line)
tw._write_source(source_lines, indents)