From: Antoine Pitrou Date: Sat, 30 May 2009 21:04:26 +0000 (+0000) Subject: Issue #6149: Fix initialization of WeakValueDictionary objects from non-empty parameters. X-Git-Tag: v3.1rc2~119 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c06de477a35669cac037b0bc92a28f9492d76015;p=python Issue #6149: Fix initialization of WeakValueDictionary objects from non-empty parameters. --- diff --git a/Lib/test/test_weakref.py b/Lib/test/test_weakref.py index 9821e1ba75..049dba2110 100644 --- a/Lib/test/test_weakref.py +++ b/Lib/test/test_weakref.py @@ -942,6 +942,17 @@ class MappingTestCase(TestBase): dict[o] = o.arg return dict, objects + def test_make_weak_valued_dict_from_dict(self): + o = Object(3) + dict = weakref.WeakValueDictionary({364:o}) + self.assertEqual(dict[364], o) + + def test_make_weak_valued_dict_from_weak_valued_dict(self): + o = Object(3) + dict = weakref.WeakValueDictionary({364:o}) + dict2 = weakref.WeakValueDictionary(dict) + self.assertEqual(dict[364], o) + def make_weak_valued_dict(self): dict = weakref.WeakValueDictionary() objects = list(map(Object, range(self.COUNT))) diff --git a/Lib/weakref.py b/Lib/weakref.py index 0276dfd117..5e6cc8be3a 100644 --- a/Lib/weakref.py +++ b/Lib/weakref.py @@ -49,7 +49,7 @@ class WeakValueDictionary(collections.MutableMapping): del self.data[wr.key] self._remove = remove self.data = d = {} - d.update(*args, **kw) + self.update(*args, **kw) def __getitem__(self, key): o = self.data[key]() diff --git a/Misc/NEWS b/Misc/NEWS index 8130b7f1a4..6fa6d99a6f 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -15,6 +15,9 @@ Core and Builtins Library ------- +- Issue #6149: Fix initialization of WeakValueDictionary objects from non-empty + parameters. + What's New in Python 3.1 release candidate 1? =============================================