fixup! fixup! fixup! Add syntactic highlighting to the error explanations
This commit is contained in:
parent
1e2dddfcd6
commit
3228f8f102
|
@ -223,6 +223,8 @@ class TerminalWriter:
|
||||||
style=os.getenv("PYTEST_THEME"),
|
style=os.getenv("PYTEST_THEME"),
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
if highlighted[-1] == "\n" and source[-1] != "\n":
|
||||||
|
highlighted = highlighted[:-1]
|
||||||
return "\x1b[0m" + highlighted
|
return "\x1b[0m" + highlighted
|
||||||
except pygments.util.ClassNotFound:
|
except pygments.util.ClassNotFound:
|
||||||
raise UsageError(
|
raise UsageError(
|
||||||
|
|
|
@ -378,7 +378,7 @@ def _compare_eq_sequence(
|
||||||
|
|
||||||
explanation.append(
|
explanation.append(
|
||||||
f"At index {i} diff:"
|
f"At index {i} diff:"
|
||||||
f" {highlighter(repr(left_value)).strip()} != {highlighter(repr(right_value)).strip()}"
|
f" {highlighter(repr(left_value))} != {highlighter(repr(right_value))}"
|
||||||
)
|
)
|
||||||
break
|
break
|
||||||
|
|
||||||
|
@ -400,12 +400,12 @@ def _compare_eq_sequence(
|
||||||
|
|
||||||
if len_diff == 1:
|
if len_diff == 1:
|
||||||
explanation += [
|
explanation += [
|
||||||
f"{dir_with_more} contains one more item: {highlighter(extra).strip()}"
|
f"{dir_with_more} contains one more item: {highlighter(extra)}"
|
||||||
]
|
]
|
||||||
else:
|
else:
|
||||||
explanation += [
|
explanation += [
|
||||||
"%s contains %d more items, first extra item: %s"
|
"%s contains %d more items, first extra item: %s"
|
||||||
% (dir_with_more, len_diff, highlighter(extra).strip())
|
% (dir_with_more, len_diff, highlighter(extra))
|
||||||
]
|
]
|
||||||
return explanation
|
return explanation
|
||||||
|
|
||||||
|
@ -475,7 +475,7 @@ def _set_one_sided_diff(
|
||||||
if diff:
|
if diff:
|
||||||
explanation.append(f"Extra items in the {posn} set:")
|
explanation.append(f"Extra items in the {posn} set:")
|
||||||
for item in diff:
|
for item in diff:
|
||||||
explanation.append(highlighter(saferepr(item)).strip())
|
explanation.append(highlighter(saferepr(item)))
|
||||||
return explanation
|
return explanation
|
||||||
|
|
||||||
|
|
||||||
|
@ -494,15 +494,15 @@ def _compare_eq_dict(
|
||||||
explanation += ["Omitting %s identical items, use -vv to show" % len(same)]
|
explanation += ["Omitting %s identical items, use -vv to show" % len(same)]
|
||||||
elif same:
|
elif same:
|
||||||
explanation += ["Common items:"]
|
explanation += ["Common items:"]
|
||||||
explanation += highlighter(pprint.pformat(same)).strip().splitlines()
|
explanation += highlighter(pprint.pformat(same)).splitlines()
|
||||||
diff = {k for k in common if left[k] != right[k]}
|
diff = {k for k in common if left[k] != right[k]}
|
||||||
if diff:
|
if diff:
|
||||||
explanation += ["Differing items:"]
|
explanation += ["Differing items:"]
|
||||||
for k in diff:
|
for k in diff:
|
||||||
explanation += [
|
explanation += [
|
||||||
highlighter(saferepr({k: left[k]})).strip()
|
highlighter(saferepr({k: left[k]}))
|
||||||
+ " != "
|
+ " != "
|
||||||
+ highlighter(saferepr({k: right[k]})).strip()
|
+ highlighter(saferepr({k: right[k]}))
|
||||||
]
|
]
|
||||||
extra_left = set_left - set_right
|
extra_left = set_left - set_right
|
||||||
len_extra_left = len(extra_left)
|
len_extra_left = len(extra_left)
|
||||||
|
@ -565,17 +565,17 @@ def _compare_eq_cls(
|
||||||
explanation.append("Omitting %s identical items, use -vv to show" % len(same))
|
explanation.append("Omitting %s identical items, use -vv to show" % len(same))
|
||||||
elif same:
|
elif same:
|
||||||
explanation += ["Matching attributes:"]
|
explanation += ["Matching attributes:"]
|
||||||
explanation += highlighter(pprint.pformat(same)).strip().splitlines()
|
explanation += highlighter(pprint.pformat(same)).splitlines()
|
||||||
if diff:
|
if diff:
|
||||||
explanation += ["Differing attributes:"]
|
explanation += ["Differing attributes:"]
|
||||||
explanation += highlighter(pprint.pformat(diff)).strip().splitlines()
|
explanation += highlighter(pprint.pformat(diff)).splitlines()
|
||||||
for field in diff:
|
for field in diff:
|
||||||
field_left = getattr(left, field)
|
field_left = getattr(left, field)
|
||||||
field_right = getattr(right, field)
|
field_right = getattr(right, field)
|
||||||
explanation += [
|
explanation += [
|
||||||
"",
|
"",
|
||||||
f"Drill down into differing attribute {field}:",
|
f"Drill down into differing attribute {field}:",
|
||||||
f"{indent}{field}: {highlighter(repr(field_left)).strip()} != {highlighter(repr(field_right)).strip()}",
|
f"{indent}{field}: {highlighter(repr(field_left))} != {highlighter(repr(field_right))}",
|
||||||
]
|
]
|
||||||
explanation += [
|
explanation += [
|
||||||
indent + line
|
indent + line
|
||||||
|
|
Loading…
Reference in New Issue