improve failure output

This commit is contained in:
Aly Sivji 2018-11-13 09:37:02 -06:00
parent 2bffd6829e
commit b83e97802e
2 changed files with 9 additions and 11 deletions

View File

@ -345,15 +345,13 @@ def _compare_eq_cls(left, right, verbose, type_fns):
if same and verbose < 2: if same and verbose < 2:
explanation.append(u"Omitting %s identical items, use -vv to show" % len(same)) explanation.append(u"Omitting %s identical items, use -vv to show" % len(same))
elif same: elif same:
explanation += [u"Common attributes:"] explanation += [u"Matching attributes:"]
explanation += pprint.pformat(same).splitlines() explanation += pprint.pformat(same).splitlines()
if diff: if diff:
class_name = left.__class__.__name__
explanation += [u"Differing attributes:"] explanation += [u"Differing attributes:"]
for k in diff: for field in diff:
explanation += [ explanation += [
(u"%s(%s=%r) != %s(%s=%r)") (u"%s: %r != %r") % (field, getattr(left, field), getattr(right, field))
% (class_name, k, getattr(left, k), class_name, k, getattr(right, k))
] ]
return explanation return explanation

View File

@ -559,7 +559,7 @@ class TestAssert_reprcompare_dataclass(object):
[ [
"*Omitting 1 identical items, use -vv to show*", "*Omitting 1 identical items, use -vv to show*",
"*Differing attributes:*", "*Differing attributes:*",
"*SimpleDataObject(field_b='b') != SimpleDataObject(field_b='c')*", "*field_b: 'b' != 'c'*",
] ]
) )
@ -570,10 +570,10 @@ class TestAssert_reprcompare_dataclass(object):
result.assert_outcomes(failed=1, passed=0) result.assert_outcomes(failed=1, passed=0)
result.stdout.fnmatch_lines( result.stdout.fnmatch_lines(
[ [
"*Common attributes:*", "*Matching attributes:*",
"*['field_a']*", "*['field_a']*",
"*Differing attributes:*", "*Differing attributes:*",
"*SimpleDataObject(field_b='b') != SimpleDataObject(field_b='c')*", "*field_b: 'b' != 'c'*",
] ]
) )
@ -606,7 +606,7 @@ class TestAssert_reprcompare_attrsclass(object):
lines = callequal(left, right) lines = callequal(left, right)
assert lines[1].startswith("Omitting 1 identical item") assert lines[1].startswith("Omitting 1 identical item")
assert "Common attributes" not in lines assert "Matching attributes" not in lines
for line in lines[1:]: for line in lines[1:]:
assert "field_a" not in line assert "field_a" not in line
@ -620,7 +620,7 @@ class TestAssert_reprcompare_attrsclass(object):
right = SimpleDataObject(1, "c") right = SimpleDataObject(1, "c")
lines = callequal(left, right, verbose=2) lines = callequal(left, right, verbose=2)
assert lines[1].startswith("Common attributes:") assert lines[1].startswith("Matching attributes:")
assert "Omitting" not in lines[1] assert "Omitting" not in lines[1]
assert lines[2] == "['field_a']" assert lines[2] == "['field_a']"
@ -634,7 +634,7 @@ class TestAssert_reprcompare_attrsclass(object):
right = SimpleDataObject(1, "b") right = SimpleDataObject(1, "b")
lines = callequal(left, right, verbose=2) lines = callequal(left, right, verbose=2)
assert lines[1].startswith("Common attributes:") assert lines[1].startswith("Matching attributes:")
assert "Omitting" not in lines[1] assert "Omitting" not in lines[1]
assert lines[2] == "['field_a']" assert lines[2] == "['field_a']"
for line in lines[2:]: for line in lines[2:]: