diff options
| author | Jason Madden <jamadden@gmail.com> | 2020-11-12 11:49:12 -0600 |
|---|---|---|
| committer | Jason Madden <jamadden@gmail.com> | 2020-11-12 11:49:12 -0600 |
| commit | 8448b094d1b81788ac9cbaf86a184712f1daf5e0 (patch) | |
| tree | 34e07251b520b94f44fd40136687bb059a08e256 /src/greenlet/tests/test_weakref.py | |
| parent | c80fab93073603289f41df8e32b7ecc25f37763e (diff) | |
| download | greenlet-issue184.tar.gz | |
Move to the src/ layout, and make greenlet a package.issue184
Make 'tests' become 'greenlet.tests', and be compatible with 'python -m unittest discover'.
Fixes #184. Fixes #184. Fixes #189.
Diffstat (limited to 'src/greenlet/tests/test_weakref.py')
| -rw-r--r-- | src/greenlet/tests/test_weakref.py | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/src/greenlet/tests/test_weakref.py b/src/greenlet/tests/test_weakref.py new file mode 100644 index 0000000..6a2ff06 --- /dev/null +++ b/src/greenlet/tests/test_weakref.py @@ -0,0 +1,34 @@ +import gc +import greenlet +import weakref +import unittest + + +class WeakRefTests(unittest.TestCase): + def test_dead_weakref(self): + def _dead_greenlet(): + g = greenlet.greenlet(lambda: None) + g.switch() + return g + o = weakref.ref(_dead_greenlet()) + gc.collect() + self.assertEqual(o(), None) + + def test_inactive_weakref(self): + o = weakref.ref(greenlet.greenlet()) + gc.collect() + self.assertEqual(o(), None) + + def test_dealloc_weakref(self): + seen = [] + def worker(): + try: + greenlet.getcurrent().parent.switch() + finally: + seen.append(g()) + g = greenlet.greenlet(worker) + g.switch() + g2 = greenlet.greenlet(lambda: None, g) + g = weakref.ref(g2) + g2 = None + self.assertEqual(seen, [None]) |
