]> granicus.if.org Git - python/commitdiff
Added tests for key deletion for both Weak*Dictionary flavors.
authorFred Drake <fdrake@acm.org>
Thu, 6 Sep 2001 14:52:39 +0000 (14:52 +0000)
committerFred Drake <fdrake@acm.org>
Thu, 6 Sep 2001 14:52:39 +0000 (14:52 +0000)
This covers regression on SF bug #458860.

Lib/test/test_weakref.py

index 341d53fae282ff4c1a2454bac3b99a77c849ee8e..fa12a6e8f85f09fc43bcdc1539d57a64d407f553 100644 (file)
@@ -411,6 +411,28 @@ class MappingTestCase(TestBase):
         self.check_update(weakref.WeakKeyDictionary,
                           {C(): 1, C(): 2, C(): 3})
 
+    def test_weak_keyed_delitem(self):
+        d = weakref.WeakKeyDictionary()
+        o1 = Object('1')
+        o2 = Object('2')
+        d[o1] = 'something'
+        d[o2] = 'something'
+        self.assert_(len(d) == 2)
+        del d[o1]
+        self.assert_(len(d) == 1)
+        self.assert_(d.keys() == [o2])
+
+    def test_weak_valued_delitem(self):
+        d = weakref.WeakValueDictionary()
+        o1 = Object('1')
+        o2 = Object('2')
+        d['something'] = o1
+        d['something else'] = o2
+        self.assert_(len(d) == 2)
+        del d['something']
+        self.assert_(len(d) == 1)
+        self.assert_(d.items() == [('something else', o2)])
+
 
 run_unittest(ReferencesTestCase)
 run_unittest(MappingTestCase)