PYTHON-1930 Fix pure python decoder support for memoryviews

This commit is contained in:
Shane Harvey 2019-08-02 12:17:45 -07:00
parent 3bcdde34c9
commit 57302846b7
2 changed files with 2 additions and 4 deletions

View File

@ -177,10 +177,6 @@ else:
def get_data_and_view(data):
if isinstance(data, _supported_buffer_types):
return data, memoryview(data)
elif isinstance(data, memoryview):
if isinstance(
getattr(data, 'obj', None), _supported_buffer_types):
return data.obj, data
view = memoryview(data)
return view.tobytes(), view

View File

@ -292,6 +292,7 @@ class TestBSON(unittest.TestCase):
bs = b"".join(map(BSON.encode, docs))
self.assertEqual(docs, decode_all(bytearray(bs)))
self.assertEqual(docs, decode_all(memoryview(bs)))
self.assertEqual(docs, decode_all(memoryview(b'1' + bs + b'1')[1:-1]))
if PY3:
import array
import mmap
@ -307,6 +308,7 @@ class TestBSON(unittest.TestCase):
self.assertEqual(doc, decode(bs))
self.assertEqual(doc, decode(bytearray(bs)))
self.assertEqual(doc, decode(memoryview(bs)))
self.assertEqual(doc, decode(memoryview(b'1' + bs + b'1')[1:-1]))
if PY3:
import array
import mmap