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])
|
"At index {} diff: {!r} != {!r}".format(i, left[i], right[i])
|
||||||
]
|
]
|
||||||
break
|
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:
|
||||||
if len_diff > 0:
|
if len_diff > 0:
|
||||||
dir_with_more = "Left"
|
dir_with_more = "Left"
|
||||||
|
|
|
@ -331,6 +331,18 @@ class TestAssert_reprcompare:
|
||||||
assert "- spam" in diff
|
assert "- spam" in diff
|
||||||
assert "+ eggs" 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):
|
def test_list(self):
|
||||||
expl = callequal([0, 1], [0, 2])
|
expl = callequal([0, 1], [0, 2])
|
||||||
assert len(expl) > 1
|
assert len(expl) > 1
|
||||||
|
|
Loading…
Reference in New Issue