| Server IP : 123.56.80.60 / Your IP : 216.73.216.78 Web Server : Apache/2.4.54 (Win32) OpenSSL/1.1.1s PHP/7.4.33 mod_fcgid/2.3.10-dev System : Windows NT iZhx3sob14hnz7Z 10.0 build 14393 (Windows Server 2016) i586 User : SYSTEM ( 0) PHP Version : 7.4.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : C:/Program Files/python/Lib/site-packages/gevent/tests/ |
Upload File : |
# 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()