Files
deb-python-eventlet/tests/timeout_test.py
Sergey Shepelev 54be7593ab New timeout error API: .is_timeout=True on exception object
Please use eventlet.is_timeout(ex) or getattr(ex, 'is_timeout', False)
instead of searching substrings in exception message.

https://github.com/eventlet/eventlet/pull/346
2017-01-10 20:49:15 +03:00

60 lines
1.7 KiB
Python

import eventlet
import tests
DELAY = 0.01
class TestDirectRaise(tests.LimitedTestCase):
def test_direct_raise_class(self):
try:
raise eventlet.Timeout
except eventlet.Timeout as t:
assert not t.pending, repr(t)
def test_direct_raise_instance(self):
tm = eventlet.Timeout()
try:
raise tm
except eventlet.Timeout as t:
assert tm is t, (tm, t)
assert not t.pending, repr(t)
def test_repr(self):
# just verify these don't crash
tm = eventlet.Timeout(1)
eventlet.sleep(0)
repr(tm)
str(tm)
tm.cancel()
tm = eventlet.Timeout(None, RuntimeError)
repr(tm)
str(tm)
tm = eventlet.Timeout(None, False)
repr(tm)
str(tm)
class TestWithTimeout(tests.LimitedTestCase):
def test_with_timeout(self):
self.assertRaises(eventlet.Timeout, eventlet.with_timeout, DELAY, eventlet.sleep, DELAY * 10)
X = object()
r = eventlet.with_timeout(DELAY, eventlet.sleep, DELAY * 10, timeout_value=X)
assert r is X, (r, X)
r = eventlet.with_timeout(DELAY * 10, eventlet.sleep, DELAY, timeout_value=X)
assert r is None, r
def test_with_outer_timer(self):
def longer_timeout():
# this should not catch the outer timeout's exception
return eventlet.with_timeout(DELAY * 10, eventlet.sleep, DELAY * 20, timeout_value='b')
self.assertRaises(
eventlet.Timeout,
eventlet.with_timeout,
DELAY, longer_timeout)
def test_is_timeout_attribute():
tests.check_is_timeout(eventlet.Timeout())