Skip to content

Commit

Permalink
Fix sequences being shortened even with -vv verbosity.
Browse files Browse the repository at this point in the history
Fix #11777
  • Loading branch information
kenny-y-dev authored and nicoddemus committed Jan 26, 2025
1 parent ef06e43 commit 576ed15
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 0 deletions.
1 change: 1 addition & 0 deletions changelog/11777.bugfix.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Fixed issue where sequences were still being shortened even with ``-vv`` verbosity.
3 changes: 3 additions & 0 deletions src/_pytest/assertion/rewrite.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@

from _pytest._io.saferepr import DEFAULT_REPR_MAX_SIZE
from _pytest._io.saferepr import saferepr
from _pytest._io.saferepr import saferepr_unlimited
from _pytest._version import version
from _pytest.assertion import util
from _pytest.config import Config
Expand Down Expand Up @@ -432,6 +433,8 @@ def _saferepr(obj: object) -> str:
return obj.__name__

maxsize = _get_maxsize_for_saferepr(util._config)
if not maxsize:
return saferepr_unlimited(obj).replace("\n", "\\n")
return saferepr(obj, maxsize=maxsize).replace("\n", "\\n")


Expand Down
29 changes: 29 additions & 0 deletions testing/test_terminal.py
Original file line number Diff line number Diff line change
Expand Up @@ -2525,6 +2525,35 @@ def test():
)


def test_full_sequence_print_with_vv(
monkeypatch: MonkeyPatch, pytester: Pytester
) -> None:
"""Do not truncate sequences in summaries with -vv (#11777)."""
monkeypatch.setattr(_pytest.terminal, "running_on_ci", lambda: False)

pytester.makepyfile(
"""
def test_len_list():
l = list(range(10))
assert len(l) == 9
def test_len_dict():
d = dict(zip(range(10), range(10)))
assert len(d) == 9
"""
)

result = pytester.runpytest("-vv")
assert result.ret == 1
result.stdout.fnmatch_lines(
[
"*short test summary info*",
f"*{list(range(10))}*",
f"*{dict(zip(range(10), range(10)))}*",
]
)


@pytest.mark.parametrize(
"seconds, expected",
[
Expand Down

0 comments on commit 576ed15

Please sign in to comment.