diff options
| author | Antoine Pitrou <solipsis@pitrou.net> | 2010-03-31 21:32:15 (GMT) |
|---|---|---|
| committer | Antoine Pitrou <solipsis@pitrou.net> | 2010-03-31 21:32:15 (GMT) |
| commit | a57df2cf1d627840dff505e8487fbd5f42414c7b (patch) | |
| tree | 87d099bca7fc01072ad6911e9ffa79707b982704 /Lib/test | |
| parent | 26cc99da2a350f3093c9d7055794daef2034e2a4 (diff) | |
| download | cpython-a57df2cf1d627840dff505e8487fbd5f42414c7b.zip cpython-a57df2cf1d627840dff505e8487fbd5f42414c7b.tar.gz cpython-a57df2cf1d627840dff505e8487fbd5f42414c7b.tar.bz2 | |
Issue #8268: Old-style classes (not just instances) now support weak
references.
Diffstat (limited to 'Lib/test')
| -rw-r--r-- | Lib/test/test_sys.py | 2 | ||||
| -rw-r--r-- | Lib/test/test_weakref.py | 20 |
2 files changed, 21 insertions, 1 deletions
diff --git a/Lib/test/test_sys.py b/Lib/test/test_sys.py index d106fe7..1720875 100644 --- a/Lib/test/test_sys.py +++ b/Lib/test/test_sys.py @@ -544,7 +544,7 @@ class SizeofTest(unittest.TestCase): class class_oldstyle(): def method(): pass - check(class_oldstyle, size(h + '6P')) + check(class_oldstyle, size(h + '7P')) # instance (old-style class) check(class_oldstyle(), size(h + '3P')) # instancemethod (old-style class) diff --git a/Lib/test/test_weakref.py b/Lib/test/test_weakref.py index 536a987..bc2982f 100644 --- a/Lib/test/test_weakref.py +++ b/Lib/test/test_weakref.py @@ -685,6 +685,26 @@ class ReferencesTestCase(TestBase): # No exception should be raised here gc.collect() + def test_classes(self): + # Check that both old-style classes and new-style classes + # are weakrefable. + class A(object): + pass + class B: + pass + l = [] + weakref.ref(int) + a = weakref.ref(A, l.append) + A = None + gc.collect() + self.assertEqual(a(), None) + self.assertEqual(l, [a]) + b = weakref.ref(B, l.append) + B = None + gc.collect() + self.assertEqual(b(), None) + self.assertEqual(l, [a, b]) + class SubclassableWeakrefTestCase(TestBase): |
