Fix/improve comparison of byte strings
Fixes https://github.com/pytest-dev/pytest/issues/5260.
This commit is contained in:
parent
64a6365227
commit
8c7eb82363
|
@ -0,0 +1 @@
|
|||
Improve/fix comparison of byte strings with Python 3.
|
|
@ -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"
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue