Merge pull request #6384 from pv/showlocals-short

Make --showlocals work together with --tb=short

Fixes https://github.com/pytest-dev/pytest/issues/494
Ref: https://github.com/pytest-dev/pytest/issues/1715
This commit is contained in:
Daniel Hahler
2020-01-16 22:04:14 +01:00
committed by GitHub
4 changed files with 27 additions and 5 deletions

View File

@@ -786,9 +786,7 @@ class FormattedExcinfo:
message = excinfo and excinfo.typename or ""
path = self._makepath(entry.path)
filelocrepr = ReprFileLocation(path, entry.lineno + 1, message)
localsrepr = None
if not short:
localsrepr = self.repr_locals(entry.locals)
localsrepr = self.repr_locals(entry.locals)
return ReprEntry(lines, reprargs, localsrepr, filelocrepr, style)
if excinfo:
lines.extend(self.get_exconly(excinfo, indent=4))
@@ -1045,6 +1043,8 @@ class ReprEntry(TerminalRepr):
for line in self.lines:
red = line.startswith("E ")
tw.line(line, bold=True, red=red)
if self.reprlocals:
self.reprlocals.toterminal(tw, indent=" " * 8)
return
if self.reprfuncargs:
self.reprfuncargs.toterminal(tw)
@@ -1086,9 +1086,9 @@ class ReprLocals(TerminalRepr):
def __init__(self, lines: Sequence[str]) -> None:
self.lines = lines
def toterminal(self, tw) -> None:
def toterminal(self, tw, indent="") -> None:
for line in self.lines:
tw.line(line)
tw.line(indent + line)
class ReprFuncArgs(TerminalRepr):