diff --git a/bson/__init__.py b/bson/__init__.py index 2404889ed..97d38b37a 100644 --- a/bson/__init__.py +++ b/bson/__init__.py @@ -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 diff --git a/test/test_bson.py b/test/test_bson.py index 062de6d88..3380ff0c8 100644 --- a/test/test_bson.py +++ b/test/test_bson.py @@ -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