Example #1
0
 def setUp(self):
     policy = greenio.GreenTrolliusEventLoopPolicy()
     trollius.set_event_loop_policy(policy)
     if asyncio is not None:
         asyncio.set_event_loop_policy(policy)
     self.loop = policy.new_event_loop()
     policy.set_event_loop(self.loop)
Example #2
0
def asyncio_misc_init():
    asyncio.set_event_loop_policy(gbulb.GLibEventLoopPolicy())

    main_loop = asyncio.get_event_loop()
    main_loop.add_signal_handler(signal.SIGINT, _sigint_handler)
    main_loop.add_signal_handler(signal.SIGTERM, _sigterm_handler)
    g_quit_handlers.append(
        lambda:  main_loop.call_soon_threadsafe(main_loop.stop))
Example #3
0
def asyncio_misc_init():
    asyncio.set_event_loop_policy(gbulb.GLibEventLoopPolicy())

    main_loop = asyncio.get_event_loop()
    main_loop.add_signal_handler(signal.SIGINT, _sigint_handler)
    main_loop.add_signal_handler(signal.SIGTERM, _sigterm_handler)
    g_quit_handlers.append(
        lambda: main_loop.call_soon_threadsafe(main_loop.stop))
Example #4
0
def main():
    asyncio.set_event_loop_policy(asyncio_qt.QtEventLoopPolicy())
        
    app = QtGui.QApplication(sys.argv)
    dialog = QtGui.QDialog()
    button = QtGui.QPushButton("text", dialog)
    button.clicked.connect(start_other)
    dialog.show()

    loop = asyncio.get_event_loop()
    asyncio.Task(simple_coroutine())

    loop.run_forever()
Example #5
0
def main():
    asyncio.set_event_loop_policy(asyncio_qt.QtEventLoopPolicy())

    app = QtGui.QApplication(sys.argv)
    dialog = QtGui.QDialog()
    button = QtGui.QPushButton("text", dialog)
    button.clicked.connect(start_other)
    dialog.show()

    loop = asyncio.get_event_loop()
    asyncio.Task(simple_coroutine())

    loop.run_forever()
Example #6
0
def main():
    logging.basicConfig(level=logging.WARN, stream=sys.stdout)

    asyncio.set_event_loop_policy(asyncio_qt.QtEventLoopPolicy())

    app = QtGui.QApplication(sys.argv)
    app.setApplicationName("legtool")

    parser = argparse.ArgumentParser(description=__doc__)
    parser.add_argument("-c", "--config", help="use a non-default configuration file")

    args = parser.parse_args()

    legtool = LegTool(args)
    legtool.show()

    loop = asyncio.get_event_loop()
    loop.run_forever()
Example #7
0
def main():
    logging.basicConfig(level=logging.WARN, stream=sys.stdout)

    asyncio.set_event_loop_policy(asyncio_qt.QtEventLoopPolicy())

    app = QtGui.QApplication(sys.argv)
    app.setApplicationName('legtool')

    parser = argparse.ArgumentParser(description=__doc__)
    parser.add_argument('-c',
                        '--config',
                        help='use a non-default configuration file')

    args = parser.parse_args()

    legtool = LegTool(args)
    legtool.show()

    loop = asyncio.get_event_loop()
    loop.run_forever()
Example #8
0
def main():
    logging.basicConfig(level=logging.WARN, stream=sys.stdout)

    asyncio.set_event_loop_policy(asyncio_qt.QtEventLoopPolicy())

    app = QtGui.QApplication(sys.argv)
    app.setApplicationName('mjscore_manager')

    parser = optparse.OptionParser()
    parser.add_option('-s', '--serial', help='serial port to use')

    options, args = parser.parse_args()
    assert len(args) == 0

    manager = ManagerMainWindow()

    if options.serial:
        manager.open_serial(options.serial)

    manager.show()
    asyncio.get_event_loop().run_forever()
Example #9
0
def main():
    logging.basicConfig(level=logging.WARN, stream=sys.stdout)

    asyncio.set_event_loop_policy(asyncio_qt.QtEventLoopPolicy())

    app = QtGui.QApplication(sys.argv)
    app.setApplicationName('mjscore_manager')

    parser = optparse.OptionParser()
    parser.add_option('-s', '--serial',
                      help='serial port to use')

    options, args = parser.parse_args()
    assert len(args) == 0

    manager = ManagerMainWindow()

    if options.serial:
        manager.open_serial(options.serial)

    manager.show()
    asyncio.get_event_loop().run_forever()
Example #10
0
    def _create_dispatcher(self):
        if impl_aioeventlet is not None:
            aioeventlet_class = impl_aioeventlet.AsyncioEventletExecutor
        else:
            aioeventlet_class = None
        is_aioeventlet = (self.executor == aioeventlet_class)

        if impl_blocking is not None:
            blocking_class = impl_blocking.BlockingExecutor
        else:
            blocking_class = None
        is_blocking = (self.executor == blocking_class)

        if is_aioeventlet:
            policy = aioeventlet.EventLoopPolicy()
            trollius.set_event_loop_policy(policy)
            self.addCleanup(trollius.set_event_loop_policy, None)

            def run_loop(loop):
                loop.run_forever()
                loop.close()
                trollius.set_event_loop(None)

            def run_executor(executor):
                # create an event loop in the executor thread
                loop = trollius.new_event_loop()
                trollius.set_event_loop(loop)
                eventlet.spawn(run_loop, loop)

                # run the executor
                executor.start()
                executor.wait()

                # stop the event loop: run_loop() will close it
                loop.stop()

            @trollius.coroutine
            def simple_coroutine(value):
                raise trollius.Return(value)

            endpoint = mock.MagicMock(return_value=simple_coroutine('result'))
            event = eventlet.event.Event()
        elif is_blocking:
            def run_executor(executor):
                executor.start()
                executor.execute()
                executor.wait()

            endpoint = mock.MagicMock(return_value='result')
            event = None
        else:
            def run_executor(executor):
                executor.start()
                executor.wait()

            endpoint = mock.MagicMock(return_value='result')
            event = None

        class Dispatcher(object):
            def __init__(self, endpoint):
                self.endpoint = endpoint
                self.result = "not set"

            def callback(self, incoming, executor_callback):
                if executor_callback is None:
                    result = self.endpoint(incoming.ctxt,
                                           incoming.message)
                else:
                    result = executor_callback(self.endpoint,
                                               incoming.ctxt,
                                               incoming.message)
                if is_aioeventlet:
                    event.send()
                self.result = result
                return result

            def __call__(self, incoming, executor_callback=None):
                return utils.DispatcherExecutorContext(incoming,
                                                       self.callback,
                                                       executor_callback)

        return Dispatcher(endpoint), endpoint, event, run_executor
Example #11
0
 def tearDown(self):
     self.loop.close()
     trollius.set_event_loop_policy(None)
Example #12
0
    def _create_dispatcher(self):
        if impl_aioeventlet is not None:
            aioeventlet_class = impl_aioeventlet.AsyncioEventletExecutor
        else:
            aioeventlet_class = None
        is_aioeventlet = (self.executor == aioeventlet_class)

        if impl_blocking is not None:
            blocking_class = impl_blocking.BlockingExecutor
        else:
            blocking_class = None
        is_blocking = (self.executor == blocking_class)

        if is_aioeventlet:
            policy = aioeventlet.EventLoopPolicy()
            trollius.set_event_loop_policy(policy)
            self.addCleanup(trollius.set_event_loop_policy, None)

            def run_loop(loop):
                loop.run_forever()
                loop.close()
                trollius.set_event_loop(None)

            def run_executor(executor):
                # create an event loop in the executor thread
                loop = trollius.new_event_loop()
                trollius.set_event_loop(loop)
                eventlet.spawn(run_loop, loop)

                # run the executor
                executor.start()
                executor.wait()

                # stop the event loop: run_loop() will close it
                loop.stop()

            @trollius.coroutine
            def simple_coroutine(value):
                raise trollius.Return(value)

            endpoint = mock.MagicMock(return_value=simple_coroutine('result'))
            event = eventlet.event.Event()
        elif is_blocking:

            def run_executor(executor):
                executor.start()
                executor.execute()
                executor.wait()

            endpoint = mock.MagicMock(return_value='result')
            event = None
        else:

            def run_executor(executor):
                executor.start()
                executor.wait()

            endpoint = mock.MagicMock(return_value='result')
            event = None

        class Dispatcher(object):
            def __init__(self, endpoint):
                self.endpoint = endpoint
                self.result = "not set"

            def callback(self, incoming, executor_callback):
                if executor_callback is None:
                    result = self.endpoint(incoming.ctxt, incoming.message)
                else:
                    result = executor_callback(self.endpoint, incoming.ctxt,
                                               incoming.message)
                if is_aioeventlet:
                    event.send()
                self.result = result
                return result

            def __call__(self, incoming, executor_callback=None):
                return utils.DispatcherExecutorContext(incoming, self.callback,
                                                       executor_callback)

        return Dispatcher(endpoint), endpoint, event, run_executor
Example #13
0
 def setUp(self):
     policy = greenio.GreenTrolliusEventLoopPolicy()
     asyncio.set_event_loop_policy(policy)
     trollius.set_event_loop_policy(policy)
     self.loop = trollius.new_event_loop()
     policy.set_event_loop(self.loop)
Example #14
0
    def test_executor_dispatch(self):
        if impl_aioeventlet is not None:
            aioeventlet_class = impl_aioeventlet.AsyncioEventletExecutor
        else:
            aioeventlet_class = None
        is_aioeventlet = self.executor == aioeventlet_class

        if is_aioeventlet:
            policy = aioeventlet.EventLoopPolicy()
            trollius.set_event_loop_policy(policy)
            self.addCleanup(trollius.set_event_loop_policy, None)

            def run_loop(loop):
                loop.run_forever()
                loop.close()
                trollius.set_event_loop(None)

            def run_executor(executor):
                # create an event loop in the executor thread
                loop = trollius.new_event_loop()
                trollius.set_event_loop(loop)
                eventlet.spawn(run_loop, loop)

                # run the executor
                executor.start()
                executor.wait()

                # stop the event loop: run_loop() will close it
                loop.stop()

            @trollius.coroutine
            def simple_coroutine(value):
                yield None
                raise trollius.Return(value)

            endpoint = mock.MagicMock(return_value=simple_coroutine("result"))
            event = eventlet.event.Event()
        else:

            def run_executor(executor):
                executor.start()
                executor.wait()

            endpoint = mock.MagicMock(return_value="result")

        class Dispatcher(object):
            def __init__(self, endpoint):
                self.endpoint = endpoint
                self.result = "not set"

            @contextlib.contextmanager
            def __call__(self, incoming, executor_callback=None):
                if executor_callback is not None:

                    def callback():
                        result = executor_callback(self.endpoint, incoming.ctxt, incoming.message)
                        self.result = result
                        return result

                    yield callback
                    event.send()
                else:

                    def callback():
                        result = self.endpoint(incoming.ctxt, incoming.message)
                        self.result = result
                        return result

                    yield callback

        listener = mock.Mock(spec=["poll"])
        dispatcher = Dispatcher(endpoint)
        executor = self.executor(self.conf, listener, dispatcher)

        incoming_message = mock.MagicMock(ctxt={}, message={"payload": "data"})

        def fake_poll(timeout=None):
            if is_aioeventlet:
                if listener.poll.call_count == 1:
                    return incoming_message
                event.wait()
                executor.stop()
            else:
                if listener.poll.call_count == 1:
                    return incoming_message
                executor.stop()

        listener.poll.side_effect = fake_poll

        self._run_in_thread(run_executor, executor)

        endpoint.assert_called_once_with({}, {"payload": "data"})
        self.assertEqual(dispatcher.result, "result")
Example #15
0
    def test_executor_dispatch(self):
        if impl_aioeventlet is not None:
            aioeventlet_class = impl_aioeventlet.AsyncioEventletExecutor
        else:
            aioeventlet_class = None
        is_aioeventlet = (self.executor == aioeventlet_class)

        if is_aioeventlet:
            policy = aioeventlet.EventLoopPolicy()
            trollius.set_event_loop_policy(policy)
            self.addCleanup(trollius.set_event_loop_policy, None)

            def run_loop(loop):
                loop.run_forever()
                loop.close()
                trollius.set_event_loop(None)

            def run_executor(executor):
                # create an event loop in the executor thread
                loop = trollius.new_event_loop()
                trollius.set_event_loop(loop)
                eventlet.spawn(run_loop, loop)

                # run the executor
                executor.start()
                executor.wait()

                # stop the event loop: run_loop() will close it
                loop.stop()

            @trollius.coroutine
            def simple_coroutine(value):
                yield None
                raise trollius.Return(value)

            endpoint = mock.MagicMock(return_value=simple_coroutine('result'))
            event = eventlet.event.Event()
        else:

            def run_executor(executor):
                executor.start()
                executor.wait()

            endpoint = mock.MagicMock(return_value='result')

        class Dispatcher(object):
            def __init__(self, endpoint):
                self.endpoint = endpoint
                self.result = "not set"

            @contextlib.contextmanager
            def __call__(self, incoming, executor_callback=None):
                if executor_callback is not None:

                    def callback():
                        result = executor_callback(self.endpoint,
                                                   incoming.ctxt,
                                                   incoming.message)
                        self.result = result
                        return result

                    yield callback
                    event.send()
                else:

                    def callback():
                        result = self.endpoint(incoming.ctxt, incoming.message)
                        self.result = result
                        return result

                    yield callback

        listener = mock.Mock(spec=['poll'])
        dispatcher = Dispatcher(endpoint)
        executor = self.executor(self.conf, listener, dispatcher)

        incoming_message = mock.MagicMock(ctxt={}, message={'payload': 'data'})

        def fake_poll(timeout=None):
            if is_aioeventlet:
                if listener.poll.call_count == 1:
                    return incoming_message
                event.wait()
                executor.stop()
            else:
                if listener.poll.call_count == 1:
                    return incoming_message
                executor.stop()

        listener.poll.side_effect = fake_poll

        self._run_in_thread(run_executor, executor)

        endpoint.assert_called_once_with({}, {'payload': 'data'})
        self.assertEqual(dispatcher.result, 'result')