Make sets and deques weak referencable.
diff --git a/Lib/test/test_deque.py b/Lib/test/test_deque.py
index bad8857..13800ea 100644
--- a/Lib/test/test_deque.py
+++ b/Lib/test/test_deque.py
@@ -1,6 +1,7 @@
from collections import deque
import unittest
from test import test_support
+from weakref import proxy
import copy
import cPickle as pickle
from cStringIO import StringIO
@@ -435,6 +436,12 @@
self.assertEqual(type(d), type(e))
self.assertEqual(list(d), list(e))
+ def test_weakref(self):
+ d = deque('gallahad')
+ p = proxy(d)
+ self.assertEqual(str(p), str(d))
+ d = None
+ self.assertRaises(ReferenceError, str, p)
#==============================================================================
diff --git a/Lib/test/test_set.py b/Lib/test/test_set.py
index 3a85c76..514b75c 100644
--- a/Lib/test/test_set.py
+++ b/Lib/test/test_set.py
@@ -1,5 +1,6 @@
import unittest
from test import test_support
+from weakref import proxy
import operator
import copy
import pickle
@@ -346,6 +347,13 @@
else:
self.assert_(c not in self.s)
+ def test_weakref(self):
+ s = self.thetype('gallahad')
+ p = proxy(s)
+ self.assertEqual(str(p), str(s))
+ s = None
+ self.assertRaises(ReferenceError, str, p)
+
class SetSubclass(set):
pass