Skip to content

Commit 3ccce89

Browse files
jimmodpgeorge
authored andcommitted
py/objarray: Turn on MP_TYPE_FLAG_EQ_CHECKS_OTHER_TYPE for memoryview.
And add corresponding tests. Fixes micropython#5674 (comparison of memoryview against bytes).
1 parent 2d800c7 commit 3ccce89

File tree

2 files changed

+19
-0
lines changed

2 files changed

+19
-0
lines changed

py/objarray.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -573,6 +573,7 @@ const mp_obj_type_t mp_type_bytearray = {
573573
#if MICROPY_PY_BUILTINS_MEMORYVIEW
574574
const mp_obj_type_t mp_type_memoryview = {
575575
{ &mp_type_type },
576+
.flags = MP_TYPE_FLAG_EQ_CHECKS_OTHER_TYPE,
576577
.name = MP_QSTR_memoryview,
577578
.make_new = memoryview_make_new,
578579
.getiter = array_iterator_new,

tests/basics/memoryview1.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,3 +107,21 @@
107107
memoryview(b'a').noexist
108108
except AttributeError:
109109
print('AttributeError')
110+
111+
# equality
112+
print(memoryview(b'abc') == b'abc')
113+
print(memoryview(b'abc') != b'abc')
114+
print(memoryview(b'abc') == b'xyz')
115+
print(memoryview(b'abc') != b'xyz')
116+
print(b'abc' == memoryview(b'abc'))
117+
print(b'abc' != memoryview(b'abc'))
118+
print(b'abc' == memoryview(b'xyz'))
119+
print(b'abc' != memoryview(b'xyz'))
120+
print(memoryview(b'abcdef')[2:4] == b'cd')
121+
print(memoryview(b'abcdef')[2:4] != b'cd')
122+
print(memoryview(b'abcdef')[2:4] == b'xy')
123+
print(memoryview(b'abcdef')[2:4] != b'xy')
124+
print(b'cd' == memoryview(b'abcdef')[2:4])
125+
print(b'cd' != memoryview(b'abcdef')[2:4])
126+
print(b'xy' == memoryview(b'abcdef')[2:4])
127+
print(b'xy' != memoryview(b'abcdef')[2:4])

0 commit comments

Comments
 (0)