Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes14kdownloads
test_weakref.py36 linesDownload Raw Back to tests
1import gc
2import weakref
3
4
5import greenlet
6from . import TestCase
7
8class WeakRefTests(TestCase):
9    def test_dead_weakref(self):
10        def _dead_greenlet():
11            g = greenlet.greenlet(lambda: None)
12            g.switch()
13            return g
14        o = weakref.ref(_dead_greenlet())
15        gc.collect()
16        self.assertEqual(o(), None)
17
18    def test_inactive_weakref(self):
19        o = weakref.ref(greenlet.greenlet())
20        gc.collect()
21        self.assertEqual(o(), None)
22
23    def test_dealloc_weakref(self):
24        seen = []
25        def worker():
26            try:
27                greenlet.getcurrent().parent.switch()
28            finally:
29                seen.append(g())
30        g = greenlet.greenlet(worker)
31        g.switch()
32        g2 = greenlet.greenlet(lambda: None, g)
33        g = weakref.ref(g2)
34        g2 = None
35        self.assertEqual(seen, [None])
36 
codekingpro/portable-devtools · Team Ai