summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_weakset.py
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/test/test_weakset.py')
-rw-r--r--Lib/test/test_weakset.py14
1 files changed, 12 insertions, 2 deletions
diff --git a/Lib/test/test_weakset.py b/Lib/test/test_weakset.py
index 4d3878f..fb22879 100644
--- a/Lib/test/test_weakset.py
+++ b/Lib/test/test_weakset.py
@@ -340,6 +340,12 @@ class TestWeakSet(unittest.TestCase):
self.assertFalse(self.s == WeakSet([Foo]))
self.assertFalse(self.s == 1)
+ def test_ne(self):
+ self.assertTrue(self.s != set(self.items))
+ s1 = WeakSet()
+ s2 = WeakSet()
+ self.assertFalse(s1 != s2)
+
def test_weak_destroy_while_iterating(self):
# Issue #7105: iterators shouldn't crash when a key is implicitly removed
# Create new items to be sure no-one else holds a reference
@@ -364,10 +370,14 @@ class TestWeakSet(unittest.TestCase):
def testcontext():
try:
it = iter(s)
- next(it)
- del it
+ # Start iterator
+ yielded = ustr(str(next(it)))
# Schedule an item for removal and recreate it
u = ustr(str(items.pop()))
+ if yielded == u:
+ # The iterator still has a reference to the removed item,
+ # advance it (issue #20006).
+ next(it)
gc.collect() # just in case
yield u
finally: