Skip to content

Commit

Permalink
Make --showlocals work together with --tb=short
Browse files Browse the repository at this point in the history
Enable showing local variables when asked to do so in the short
traceback mode.

Fixes #494
  • Loading branch information
pv committed Jan 14, 2020
1 parent 2d488f7 commit fd1691a
Show file tree
Hide file tree
Showing 4 changed files with 27 additions and 5 deletions.
1 change: 1 addition & 0 deletions AUTHORS
Original file line number Diff line number Diff line change
Expand Up @@ -208,6 +208,7 @@ Omer Hadari
Ondřej Súkup
Oscar Benjamin
Patrick Hayes
Pauli Virtanen
Paweł Adamczak
Pedro Algarvio
Philipp Loose
Expand Down
1 change: 1 addition & 0 deletions changelog/6384.improvement.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Make `--showlocals` work also with `--tb=short`.
10 changes: 5 additions & 5 deletions src/_pytest/_code/code.py
Original file line number Diff line number Diff line change
Expand Up @@ -785,9 +785,7 @@ def repr_traceback_entry(
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))
Expand Down Expand Up @@ -1044,6 +1042,8 @@ def toterminal(self, tw) -> None:
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)
Expand Down Expand Up @@ -1085,9 +1085,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):
Expand Down
20 changes: 20 additions & 0 deletions testing/test_terminal.py
Original file line number Diff line number Diff line change
Expand Up @@ -670,6 +670,26 @@ def test_showlocals():
]
)

def test_showlocals_short(self, testdir):
p1 = testdir.makepyfile(
"""
def test_showlocals_short():
x = 3
y = "xxxx"
assert 0
"""
)
result = testdir.runpytest(p1, "-l", "--tb=short")
result.stdout.fnmatch_lines(
[
"test_showlocals_short.py:*",
" assert 0",
"E assert 0",
" x = 3",
" y = 'xxxx'",
]
)

@pytest.fixture
def verbose_testfile(self, testdir):
return testdir.makepyfile(
Expand Down

0 comments on commit fd1691a

Please sign in to comment.