assertrepr_compare: use safeformat with -vv (#5936)
assertrepr_compare: use safeformat with -vv
This commit is contained in:
commit
432e5550e5
|
@ -23,10 +23,13 @@ install:
|
||||||
jobs:
|
jobs:
|
||||||
include:
|
include:
|
||||||
# OSX tests - first (in test stage), since they are the slower ones.
|
# OSX tests - first (in test stage), since they are the slower ones.
|
||||||
|
# Coverage for:
|
||||||
|
# - osx
|
||||||
|
# - verbose=1
|
||||||
- os: osx
|
- os: osx
|
||||||
osx_image: xcode10.1
|
osx_image: xcode10.1
|
||||||
language: generic
|
language: generic
|
||||||
env: TOXENV=py37-xdist PYTEST_COVERAGE=1
|
env: TOXENV=py37-xdist PYTEST_COVERAGE=1 PYTEST_ADDOPTS=-v
|
||||||
before_install:
|
before_install:
|
||||||
- which python3
|
- which python3
|
||||||
- python3 -V
|
- python3 -V
|
||||||
|
@ -52,7 +55,7 @@ jobs:
|
||||||
# - TestArgComplete (linux only)
|
# - TestArgComplete (linux only)
|
||||||
# - numpy
|
# - numpy
|
||||||
# - old attrs
|
# - old attrs
|
||||||
# Empty PYTEST_ADDOPTS to run this non-verbose.
|
# - verbose=0
|
||||||
- env: TOXENV=py37-lsof-oldattrs-numpy-twisted-xdist PYTEST_COVERAGE=1 PYTEST_ADDOPTS=
|
- env: TOXENV=py37-lsof-oldattrs-numpy-twisted-xdist PYTEST_COVERAGE=1 PYTEST_ADDOPTS=
|
||||||
|
|
||||||
# Specialized factors for py37.
|
# Specialized factors for py37.
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
Display untruncated assertion message with ``-vv``.
|
|
@ -7,6 +7,7 @@ from typing import Optional
|
||||||
|
|
||||||
import _pytest._code
|
import _pytest._code
|
||||||
from _pytest import outcomes
|
from _pytest import outcomes
|
||||||
|
from _pytest._io.saferepr import safeformat
|
||||||
from _pytest._io.saferepr import saferepr
|
from _pytest._io.saferepr import saferepr
|
||||||
from _pytest.compat import ATTRS_EQ_FIELD
|
from _pytest.compat import ATTRS_EQ_FIELD
|
||||||
|
|
||||||
|
@ -123,13 +124,21 @@ def isiterable(obj):
|
||||||
|
|
||||||
def assertrepr_compare(config, op, left, right):
|
def assertrepr_compare(config, op, left, right):
|
||||||
"""Return specialised explanations for some operators/operands"""
|
"""Return specialised explanations for some operators/operands"""
|
||||||
maxsize = (80 - 15 - len(op) - 2) // 2 # 15 chars indentation, 1 space around op
|
verbose = config.getoption("verbose")
|
||||||
left_repr = saferepr(left, maxsize=maxsize)
|
if verbose > 1:
|
||||||
right_repr = saferepr(right, maxsize=maxsize)
|
left_repr = safeformat(left)
|
||||||
|
right_repr = safeformat(right)
|
||||||
|
else:
|
||||||
|
# XXX: "15 chars indentation" is wrong
|
||||||
|
# ("E AssertionError: assert "); should use term width.
|
||||||
|
maxsize = (
|
||||||
|
80 - 15 - len(op) - 2
|
||||||
|
) // 2 # 15 chars indentation, 1 space around op
|
||||||
|
left_repr = saferepr(left, maxsize=maxsize)
|
||||||
|
right_repr = saferepr(right, maxsize=maxsize)
|
||||||
|
|
||||||
summary = "{} {} {}".format(left_repr, op, right_repr)
|
summary = "{} {} {}".format(left_repr, op, right_repr)
|
||||||
|
|
||||||
verbose = config.getoption("verbose")
|
|
||||||
explanation = None
|
explanation = None
|
||||||
try:
|
try:
|
||||||
if op == "==":
|
if op == "==":
|
||||||
|
|
|
@ -190,11 +190,12 @@ class TestAssertionRewrite:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
msg = getmsg(f, {"cls": X}).splitlines()
|
msg = getmsg(f, {"cls": X}).splitlines()
|
||||||
if verbose > 0:
|
if verbose > 1:
|
||||||
|
assert msg == ["assert {!r} == 42".format(X), " -{!r}".format(X), " +42"]
|
||||||
|
elif verbose > 0:
|
||||||
assert msg == [
|
assert msg == [
|
||||||
"assert <class 'test_...e.<locals>.X'> == 42",
|
"assert <class 'test_...e.<locals>.X'> == 42",
|
||||||
" -<class 'test_assertrewrite.TestAssertionRewrite.test_name.<locals>.X'>",
|
" -{!r}".format(X),
|
||||||
" +42",
|
" +42",
|
||||||
]
|
]
|
||||||
else:
|
else:
|
||||||
|
@ -206,9 +207,17 @@ class TestAssertionRewrite:
|
||||||
def f():
|
def f():
|
||||||
assert "1234567890" * 5 + "A" == "1234567890" * 5 + "B"
|
assert "1234567890" * 5 + "A" == "1234567890" * 5 + "B"
|
||||||
|
|
||||||
assert getmsg(f).splitlines()[0] == (
|
msg = getmsg(f).splitlines()[0]
|
||||||
"assert '123456789012...901234567890A' == '123456789012...901234567890B'"
|
if request.config.getoption("verbose") > 1:
|
||||||
)
|
assert msg == (
|
||||||
|
"assert '12345678901234567890123456789012345678901234567890A' "
|
||||||
|
"== '12345678901234567890123456789012345678901234567890B'"
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
assert msg == (
|
||||||
|
"assert '123456789012...901234567890A' "
|
||||||
|
"== '123456789012...901234567890B'"
|
||||||
|
)
|
||||||
|
|
||||||
def test_dont_rewrite_if_hasattr_fails(self, request):
|
def test_dont_rewrite_if_hasattr_fails(self, request):
|
||||||
class Y:
|
class Y:
|
||||||
|
|
Loading…
Reference in New Issue