Skip to content

Commit 5730284

Browse files
committed
PYTHON-1930 Fix pure python decoder support for memoryviews
1 parent 3bcdde3 commit 5730284

File tree

2 files changed

+2
-4
lines changed

2 files changed

+2
-4
lines changed

bson/__init__.py

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -177,10 +177,6 @@ def get_data_and_view(data):
177177
def get_data_and_view(data):
178178
if isinstance(data, _supported_buffer_types):
179179
return data, memoryview(data)
180-
elif isinstance(data, memoryview):
181-
if isinstance(
182-
getattr(data, 'obj', None), _supported_buffer_types):
183-
return data.obj, data
184180
view = memoryview(data)
185181
return view.tobytes(), view
186182

test/test_bson.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -292,6 +292,7 @@ def test_decode_all_buffer_protocol(self):
292292
bs = b"".join(map(BSON.encode, docs))
293293
self.assertEqual(docs, decode_all(bytearray(bs)))
294294
self.assertEqual(docs, decode_all(memoryview(bs)))
295+
self.assertEqual(docs, decode_all(memoryview(b'1' + bs + b'1')[1:-1]))
295296
if PY3:
296297
import array
297298
import mmap
@@ -307,6 +308,7 @@ def test_decode_buffer_protocol(self):
307308
self.assertEqual(doc, decode(bs))
308309
self.assertEqual(doc, decode(bytearray(bs)))
309310
self.assertEqual(doc, decode(memoryview(bs)))
311+
self.assertEqual(doc, decode(memoryview(b'1' + bs + b'1')[1:-1]))
310312
if PY3:
311313
import array
312314
import mmap

0 commit comments

Comments
 (0)