Esempio n. 1
0
    def test_wrap_greenlet_exc(self):
        def func():
            raise ValueError(7)

        gl = greenlet.greenlet(func)
        fut = aiogevent.wrap_greenlet(gl)
        gl.switch()
        self.assertRaises(ValueError, self.loop.run_until_complete, fut)
Esempio n. 2
0
    def test_wrap_greenlet(self):
        def func(value):
            return value * 3

        gl = greenlet.greenlet(func)
        fut = aiogevent.wrap_greenlet(gl)
        gl.switch(5)
        result = self.loop.run_until_complete(fut)
        self.assertEqual(result, 15)
Esempio n. 3
0
    def test_wrap_greenlet_exc(self):
        self.loop.set_debug(True)

        def func():
            raise ValueError(7)

        gt = gevent.spawn_raw(func)
        fut = aiogevent.wrap_greenlet(gt)
        self.assertRaises(ValueError, self.loop.run_until_complete, fut)
Esempio n. 4
0
 def func():
     try:
         gt = gevent.getcurrent()
         fut = aiogevent.wrap_greenlet(gt)
     except Exception as exc:
         result.append((True, exc))
     else:
         result.append((False, fut))
     event.set()
Esempio n. 5
0
    def test_wrap_greenlet(self):
        def func():
            gevent.sleep(0.010)
            return "ok"

        gt = gevent.spawn_raw(func)
        fut = aiogevent.wrap_greenlet(gt)
        result = self.loop.run_until_complete(fut)
        self.assertEqual(result, "ok")
Esempio n. 6
0
    def coro_wrap_greenlet():
        result = []

        gt = gevent.spawn(gevent_slow_append, result, 1, 0.020)
        value = yield From(aiogevent.wrap_greenlet(gt))
        result.append(value)

        gt = gevent.spawn(gevent_slow_append, result, 2, 0.010)
        value = yield From(aiogevent.wrap_greenlet(gt))
        result.append(value)

        gt = gevent.spawn(gevent_slow_error)
        try:
            yield From(aiogevent.wrap_greenlet(gt))
        except ValueError as exc:
            result.append(str(exc))

        result.append(4)
        raise Return(result)
Esempio n. 7
0
    def test_wrap_greenlet_exc(self):
        self.loop.set_debug(True)

        def func():
            raise ValueError(7)

        # FIXME: the unit test must fail!?
        with tests.mock.patch('traceback.print_exception') as print_exception:
            gt = gevent.spawn(func)
            fut = aiogevent.wrap_greenlet(gt)
            self.assertRaises(ValueError, self.loop.run_until_complete, fut)

        # the exception must not be logger by traceback: the caller must
        # consume the exception from the future object
        self.assertFalse(print_exception.called)
Esempio n. 8
0
 def func(value):
     gl = greenlet.getcurrent()
     return aiogevent.wrap_greenlet(gl)
Esempio n. 9
0
 def func():
     return aiogevent.wrap_greenlet(gt)
Esempio n. 10
0
load_module("wait")
load_module("logging")
#load_module("on_event")
load_module("net")
load_module("data")
load_module("block")
load_module("qbroker")
load_module("state")
load_module("errors")
#load_module("trigger")
load_module("help")

k = spawn(run, "qbroker", input)
j = spawn(gtester)
f = aiogevent.wrap_greenlet(j, loop=qbroker.loop)
#qbroker.loop.run_until_complete(f)
aiogevent.yield_future(f)
assert seen

try:
    k.kill()
finally:
    k.join()
try:
    j.kill()
finally:
    j.join()

import sys
sys.exit(0)
Esempio n. 11
0
##  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
##  GNU General Public License (included; see the file LICENSE)
##  for more details.
##
##  This header is auto-generated and may self-destruct at any time,
##  courtesy of "make update". The original is in ‘scripts/_boilerplate.py’.
##  Thus, do not remove the next line, or insert any blank lines above.
##BP

from moat import patch; patch()
from qbroker import setup; setup(gevent=True)
import os
import sys
import gevent
import qbroker
import aiogevent

### this import must not happen before settings are completely loaded
from hamlish_jinja import Hamlish
Hamlish._self_closing_jinja_tags.add('csrf_token')

import django
django.setup()

if __name__ == "__main__":
    from django.core.management import execute_from_command_line

    g = gevent.spawn(execute_from_command_line,sys.argv)
    t = aiogevent.wrap_greenlet(g,loop=qbroker.loop)
    qbroker.loop.run_until_complete(t)
Esempio n. 12
0
def _async_stop_mainloop():
	j = gevent.spawn(_stop_mainloop)
	yield from aiogevent.wrap_greenlet(j)
Esempio n. 13
0
def _async_stop_mainloop():
    j = gevent.spawn(_stop_mainloop)
    yield from aiogevent.wrap_greenlet(j)