test__hub: add TestExceptionInMainloop
This commit is contained in:
@@ -20,10 +20,11 @@
|
||||
# THE SOFTWARE.
|
||||
|
||||
import unittest
|
||||
import time
|
||||
from eventlet import api
|
||||
from eventlet.green import socket
|
||||
|
||||
DELAY = 0.01
|
||||
DELAY = 0.1
|
||||
|
||||
|
||||
class TestScheduleCall(unittest.TestCase):
|
||||
@@ -54,6 +55,28 @@ class TestCloseSocketWhilePolling(unittest.TestCase):
|
||||
assert False, 'expected an error here'
|
||||
|
||||
|
||||
class TestExceptionInMainloop(unittest.TestCase):
|
||||
|
||||
def test_sleep(self):
|
||||
# even if there was an error in the mainloop, the hub should continue to work
|
||||
start = time.time()
|
||||
api.sleep(DELAY)
|
||||
delay = time.time() - start
|
||||
|
||||
assert delay >= DELAY*0.9, 'sleep returned after %s seconds (was scheduled for %s)' % (delay, DELAY)
|
||||
|
||||
def fail():
|
||||
1/0
|
||||
|
||||
api.get_hub().schedule_call_global(0, fail)
|
||||
|
||||
start = time.time()
|
||||
api.sleep(DELAY)
|
||||
delay = time.time() - start
|
||||
|
||||
assert delay >= DELAY*0.9, 'sleep returned after %s seconds (was scheduled for %s)' % (delay, DELAY)
|
||||
|
||||
|
||||
if __name__=='__main__':
|
||||
unittest.main()
|
||||
|
||||
|
Reference in New Issue
Block a user