From 57302846b761231cd3929906fa8566c8f0699a65 Mon Sep 17 00:00:00 2001 From: Shane Harvey Date: Fri, 2 Aug 2019 12:17:45 -0700 Subject: [PATCH] PYTHON-1930 Fix pure python decoder support for memoryviews --- bson/__init__.py | 4 ---- test/test_bson.py | 2 ++ 2 files changed, 2 insertions(+), 4 deletions(-) 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