mit neuen venv und exe-Files
This commit is contained in:
47
venv3_12/Lib/site-packages/gevent/tests/test__issue607.py
Normal file
47
venv3_12/Lib/site-packages/gevent/tests/test__issue607.py
Normal file
@@ -0,0 +1,47 @@
|
||||
# A greenlet that's killed with an exception should fail.
|
||||
import gevent.testing as greentest
|
||||
import gevent
|
||||
|
||||
|
||||
class ExpectedError(greentest.ExpectedException):
|
||||
pass
|
||||
|
||||
|
||||
def f():
|
||||
gevent.sleep(999)
|
||||
|
||||
|
||||
class TestKillWithException(greentest.TestCase):
|
||||
|
||||
def test_kill_without_exception(self):
|
||||
g = gevent.spawn(f)
|
||||
g.kill()
|
||||
assert g.successful()
|
||||
assert isinstance(g.get(), gevent.GreenletExit)
|
||||
|
||||
def test_kill_with_exception(self):
|
||||
# issue-607 pointed this case.
|
||||
g = gevent.spawn(f)
|
||||
with gevent.get_hub().ignoring_expected_test_error():
|
||||
# Hmm, this only needs the `with ignoring...` in
|
||||
# PURE_PYTHON mode (or PyPy).
|
||||
g.kill(ExpectedError)
|
||||
self.assertFalse(g.successful())
|
||||
self.assertRaises(ExpectedError, g.get)
|
||||
self.assertIsNone(g.value)
|
||||
self.assertIsInstance(g.exception, ExpectedError)
|
||||
|
||||
def test_kill_with_exception_after_started(self):
|
||||
with gevent.get_hub().ignoring_expected_test_error():
|
||||
g = gevent.spawn(f)
|
||||
g.join(0)
|
||||
g.kill(ExpectedError)
|
||||
|
||||
self.assertFalse(g.successful())
|
||||
self.assertRaises(ExpectedError, g.get)
|
||||
self.assertIsNone(g.value)
|
||||
self.assertIsInstance(g.exception, ExpectedError)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
greentest.main()
|
||||
Reference in New Issue
Block a user