403Webshell
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 :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : C:/Program Files/python/Lib/site-packages/gevent/tests//test__issue330.py
# A greenlet that's killed before it is ever started
# should never be switched to
import gevent
import gevent.testing as greentest


class MyException(Exception):
    pass

class TestSwitch(greentest.TestCase):

    def setUp(self):
        super(TestSwitch, self).setUp()
        self.switched_to = [False, False]
        self.caught = None

    def should_never_run(self, i): # pragma: no cover
        self.switched_to[i] = True

    def check(self, g, g2):
        gevent.joinall((g, g2))
        self.assertEqual([False, False], self.switched_to)

        # They both have a GreenletExit as their value
        self.assertIsInstance(g.value, gevent.GreenletExit)
        self.assertIsInstance(g2.value, gevent.GreenletExit)

        # They both have no reported exc_info
        self.assertIsNone(g.exc_info)
        self.assertIsNone(g2.exc_info)
        self.assertIsNone(g.exception)
        self.assertIsNone(g2.exception)


    def test_gevent_kill(self):
        g = gevent.spawn(self.should_never_run, 0) # create but do not switch to
        g2 = gevent.spawn(self.should_never_run, 1) # create but do not switch to
        # Using gevent.kill
        gevent.kill(g)
        gevent.kill(g2)
        self.check(g, g2)

    def test_greenlet_kill(self):
        # killing directly
        g = gevent.spawn(self.should_never_run, 0)
        g2 = gevent.spawn(self.should_never_run, 1)
        g.kill()
        g2.kill()
        self.check(g, g2)

    def test_throw(self):
        # throwing
        g = gevent.spawn(self.should_never_run, 0)
        g2 = gevent.spawn(self.should_never_run, 1)
        g.throw(gevent.GreenletExit)
        g2.throw(gevent.GreenletExit)
        self.check(g, g2)


    def catcher(self):
        try:
            while True:
                gevent.sleep(0)
        except MyException as e:
            self.caught = e

    def test_kill_exception(self):
        # Killing with gevent.kill gets the right exception,
        # and we can pass exception objects, not just exception classes.

        g = gevent.spawn(self.catcher)
        g.start()
        gevent.sleep()
        gevent.kill(g, MyException())
        gevent.sleep()

        self.assertIsInstance(self.caught, MyException)
        self.assertIsNone(g.exception, MyException)


if __name__ == '__main__':
    greentest.main()

Youez - 2016 - github.com/yon3zu
LinuXploit