diff options
author | Richard Oudkerk <shibturn@gmail.com> | 2012-05-28 20:35:09 (GMT) |
---|---|---|
committer | Richard Oudkerk <shibturn@gmail.com> | 2012-05-28 20:35:09 (GMT) |
commit | 3e0a1eb8890c25b9d1f98bc2f4a4bbe2a0cdfdce (patch) | |
tree | 3b5e75991f7a5e61aea0f6282fec4d7c00c7cc12 /Lib | |
parent | 1cfe7d9a84d5f4d8950f2b5a82be3bb25a725b62 (diff) | |
download | cpython-3e0a1eb8890c25b9d1f98bc2f4a4bbe2a0cdfdce.zip cpython-3e0a1eb8890c25b9d1f98bc2f4a4bbe2a0cdfdce.tar.gz cpython-3e0a1eb8890c25b9d1f98bc2f4a4bbe2a0cdfdce.tar.bz2 |
Issue #14930: Make memoryview objects weakrefable.
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/test/test_memoryview.py | 15 | ||||
-rw-r--r-- | Lib/test/test_sys.py | 2 |
2 files changed, 16 insertions, 1 deletions
diff --git a/Lib/test/test_memoryview.py b/Lib/test/test_memoryview.py index 8809930..5a33d035 100644 --- a/Lib/test/test_memoryview.py +++ b/Lib/test/test_memoryview.py @@ -336,6 +336,21 @@ class AbstractMemoryTests: m = self._view(b) self.assertRaises(ValueError, hash, m) + def test_weakref(self): + # Check memoryviews are weakrefable + for tp in self._types: + b = tp(self._source) + m = self._view(b) + L = [] + def callback(wr, b=b): + L.append(b) + wr = weakref.ref(m, callback) + self.assertIs(wr(), m) + del m + test.support.gc_collect() + self.assertIs(wr(), None) + self.assertIs(L[0], b) + # Variations on source objects for the buffer: bytes-like objects, then arrays # with itemsize > 1. # NOTE: support for multi-dimensional objects is unimplemented. diff --git a/Lib/test/test_sys.py b/Lib/test/test_sys.py index e3629ff..b024d9a 100644 --- a/Lib/test/test_sys.py +++ b/Lib/test/test_sys.py @@ -778,7 +778,7 @@ class SizeofTest(unittest.TestCase): check(int(PyLong_BASE**2-1), size(vh) + 2*self.longdigit) check(int(PyLong_BASE**2), size(vh) + 3*self.longdigit) # memoryview - check(memoryview(b''), size(h + 'PPiP4P2i5P3cP')) + check(memoryview(b''), size(h + 'PPiP4P2i5P3c2P')) # module check(unittest, size(h + '3P')) # None |