summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tests/test_greenlet.py37
1 files changed, 37 insertions, 0 deletions
diff --git a/tests/test_greenlet.py b/tests/test_greenlet.py
new file mode 100644
index 0000000..67cde61
--- /dev/null
+++ b/tests/test_greenlet.py
@@ -0,0 +1,37 @@
+import aiogreen
+import greenlet
+import tests
+
+
+class WrapGreenletTests(tests.TestCase):
+ def test_wrap_greenlet(self):
+ def func(value):
+ return value * 3
+
+ gl = greenlet.greenlet(func)
+ fut = aiogreen.wrap_greenthread(gl)
+ gl.switch(5)
+ result = self.loop.run_until_complete(fut)
+ self.assertEqual(result, 15)
+
+ def test_wrap_greenlet_running(self):
+ def func(value):
+ gl = greenlet.getcurrent()
+ return aiogreen.wrap_greenthread(gl)
+
+ gl = greenlet.greenlet(func)
+ self.assertRaises(RuntimeError, gl.switch, 5)
+
+ def test_wrap_greenlet_dead(self):
+ def func(value):
+ return value * 3
+
+ gl = greenlet.greenlet(func)
+ gl.switch(5)
+ self.assertRaises(RuntimeError, aiogreen.wrap_greenthread, gl)
+
+
+if __name__ == '__main__':
+ import unittest
+ unittest.main()
+