summaryrefslogtreecommitdiff
path: root/greentest
diff options
context:
space:
mode:
authorDenis Bilenko <denis@ag-projects.com>2008-12-10 16:05:19 +0600
committerDenis Bilenko <denis@ag-projects.com>2008-12-10 16:05:19 +0600
commit92877f8c01b9780c906358742370bf0892742b58 (patch)
treed6612ef3dacdf7082f30eb61f3e6ff6113c8793f /greentest
parent1248636fabf44974aec83648599aaa8f094d01f5 (diff)
downloadeventlet-92877f8c01b9780c906358742370bf0892742b58.tar.gz
renamed coros.async_result to coros.AsyncJob; added poll, kill_after, __nonzero__ methods; made it access greenlet via weakref
Diffstat (limited to 'greentest')
-rw-r--r--greentest/test__event.py40
1 files changed, 36 insertions, 4 deletions
diff --git a/greentest/test__event.py b/greentest/test__event.py
index f05274d..c1f5eac 100644
--- a/greentest/test__event.py
+++ b/greentest/test__event.py
@@ -1,7 +1,7 @@
import unittest
import sys
from eventlet.coros import event, spawn_link
-from eventlet.api import spawn, sleep, GreenletExit
+from eventlet.api import spawn, sleep, GreenletExit, exc_after
class TestEvent(unittest.TestCase):
@@ -41,12 +41,14 @@ class TestSpawnLink(unittest.TestCase):
sleep(0.1)
return 101
res = spawn_link(func)
+ assert res
if sync:
res.kill()
else:
spawn(res.kill)
wait_result = res.wait()
- assert isinstance(wait_result, GreenletExit), `wait_result`
+ assert not res, repr(res)
+ assert isinstance(wait_result, GreenletExit), repr(wait_result)
def test_kill_sync(self):
return self._test_kill(True)
@@ -54,9 +56,39 @@ class TestSpawnLink(unittest.TestCase):
def test_kill_async(self):
return self._test_kill(False)
+ def test_poll(self):
+ def func():
+ sleep(0.1)
+ return 25
+ job = spawn_link(func)
+ self.assertEqual(job.poll(), None)
+ assert job, repr(job)
+ self.assertEqual(job.wait(), 25)
+ self.assertEqual(job.poll(), 25)
+ assert not job, repr(job)
-if __name__=='__main__':
- unittest.main()
+ job = spawn_link(func)
+ self.assertEqual(job.poll(5), 5)
+ assert job, repr(job)
+ self.assertEqual(job.wait(), 25)
+ self.assertEqual(job.poll(5), 25)
+ assert not job, repr(job)
+ def test_kill_after(self):
+ def func():
+ sleep(0.1)
+ return 25
+ job = spawn_link(func)
+ job.kill_after(0.05)
+ result = job.wait()
+ assert isinstance(result, GreenletExit), repr(result)
+
+ job = spawn_link(func)
+ job.kill_after(0.2)
+ self.assertEqual(job.wait(), 25)
+ sleep(0.2)
+ self.assertEqual(job.wait(), 25)
+if __name__=='__main__':
+ unittest.main()