Fix/improve comparison of byte strings

Fixes https://github.com/pytest-dev/pytest/issues/5260.
This commit is contained in:
Daniel Hahler 2019-05-15 12:03:00 +02:00 committed by Bruno Oliveira
parent 64a6365227
commit 8c7eb82363
3 changed files with 17 additions and 1 deletions

View File

@ -0,0 +1 @@
Improve/fix comparison of byte strings with Python 3.

View File

@ -263,8 +263,11 @@ def _compare_eq_sequence(left, right, verbose=0):
"At index {} diff: {!r} != {!r}".format(i, left[i], right[i])
]
break
len_diff = len_left - len_right
if isinstance(left, bytes):
return explanation
len_diff = len_left - len_right
if len_diff:
if len_diff > 0:
dir_with_more = "Left"

View File

@ -331,6 +331,18 @@ class TestAssert_reprcompare:
assert "- spam" in diff
assert "+ eggs" in diff
def test_bytes_diff(self):
diff = callequal(b"spam", b"eggs")
if PY3:
assert diff == [
"b'spam' == b'eggs'",
"At index 0 diff: 115 != 101",
"Use -v to get the full diff",
]
else:
# Handled as text on Python 2.
assert diff == ["'spam' == 'eggs'", "- spam", "+ eggs"]
def test_list(self):
expl = callequal([0, 1], [0, 2])
assert len(expl) > 1