Ejemplo n.º 1
0
 def test_slow_task(self):
     thread_pool = ThreadPoolExecutor(1)
     future = thread_pool.submit(self._fake_slow_task)
     self.assertFalse(future.done())
     run_until_complete(future)
     self.assertTrue(future.done())
     self.assertEqual(future.result(), 3)
Ejemplo n.º 2
0
 def test_sleep(self):
     ts = time.time()
     future = self._task_for_sleep(1)
     self.assertFalse(future.done())
     run_until_complete(future)
     self.assertTrue(future.done())
     self.assertGreaterEqual(time.time() - ts, 1)
Ejemplo n.º 3
0
    def test_cookies(self):
        with self.get_http_patch() as m:
            f = self.client.fetch("abc", cookies={"cc": "ccc"})

        self.assertEqual("cc=ccc", m.call_args[1]["headers"]["Cookie"])
        run_until_complete(f)
        resp = f.result()
        self.assertDictEqual({"c": "3"}, resp.cookies)
Ejemplo n.º 4
0
    def test_cookies(self):
        with self.get_http_patch() as m:
            f = self.client.fetch('abc', cookies={'cc': 'ccc'})

        self.assertEqual('cc=ccc', m.call_args[1]['headers']['Cookie'])
        run_until_complete(f)
        resp = f.result()
        self.assertDictEqual({'c': '3'}, resp.cookies)
Ejemplo n.º 5
0
    def test_json(self):
        with self.get_http_patch() as m:
            f = self.client.post("abc", json={"request": "json"})

        run_until_complete(f)
        resp = f.result()
        self.assertEqual(json_encode({"request": "json"}),
                         m.call_args[1]["body"])
        self.assertDictEqual({"body": "json-body"}, resp.json())
Ejemplo n.º 6
0
    def test_wrapper(self):
        @coroutine
        @wrapper
        def _test():
            raise IOError

        future = _test()
        run_until_complete(future)
        self.assertRaises(IOError, future.result)
Ejemplo n.º 7
0
    def test_json(self):
        with self.get_http_patch() as m:
            f = self.client.post('abc', json={'request': 'json'})

        run_until_complete(f)
        resp = f.result()
        self.assertEqual(json_encode({'request': 'json'}),
                         m.call_args[1]['body'])
        self.assertDictEqual({'body': 'json-body'}, resp.json())
Ejemplo n.º 8
0
    def test_init_sqlhelper(self):
        @coroutine
        @wrapper
        def _test():
            sqlhelper = SqlHelper('movoto')
            return_in_coroutine('ok')

        future = _test()
        run_until_complete(future)
        self.assertEqual(future.result(), 'ok')
Ejemplo n.º 9
0
 def test_wait_specified_tasks(self):
     thread_pool = ThreadPoolExecutor(1)
     future_slow = thread_pool.submit(self._fake_slow_task)
     future_very_slow = thread_pool.submit(self._fake_very_slow_task)
     start_time = time.time()
     run_until_complete(future_slow)
     end_time = time.time()
     self.assertLess(end_time - start_time, 2)
     self.assertTrue(future_slow.done())
     self.assertFalse(future_very_slow.done())
     self.assertEqual(future_slow.result(), 3)
Ejemplo n.º 10
0
    def test_getOneBySql(self):
        @coroutine
        @wrapper
        def _test():
            sqlhelper = SqlHelper("movoto")
            r = yield sqlhelper.get_one_by_sql("show databases;")
            return_in_coroutine(r)

        future = _test()
        run_until_complete(future)
        self.assertIsNone(future.exception())
        self.assertEqual(future.result()[0], "information_schema")
Ejemplo n.º 11
0
    def test_rest(self):

        for method in ("get", "post", "patch", "head", "delete"):
            with self.get_http_patch() as m:
                f = getattr(self.client, method)("abc")

            self.assertEqual(m.call_args[0], ("abc", ))
            self.assertPartInDict({"headers": {
                "Connection": "keep-alive"
            }}, m.call_args[1])
            run_until_complete(f)
            self.assertEqual(f.result().response, self._resp)
Ejemplo n.º 12
0
    def test_rest(self):

        for method in ('get', 'post', 'patch', 'head', 'delete'):
            with self.get_http_patch() as m:
                f = getattr(self.client, method)('abc')

            self.assertEqual(m.call_args[0], ('abc', ))
            self.assertPartInDict({'headers': {
                'Connection': 'keep-alive'
            }}, m.call_args[1])
            run_until_complete(f)
            self.assertEqual(f.result().response, self._resp)
Ejemplo n.º 13
0
    def test_getAllBySql(self):
        @coroutine
        @wrapper
        def _test():
            sqlhelper = SqlHelper('movoto')
            r = yield sqlhelper.get_all_by_sql('show databases;')
            return_in_coroutine(r)

        future = _test()
        run_until_complete(future)
        self.assertIsNone(future.exception())
        self.assertEqual(future.result()[0][0], 'information_schema')
Ejemplo n.º 14
0
    def test_run_on_executor(self):
        thread_pool = ThreadPoolExecutor(1)

        @thread_pool.coroutine
        def _fake_slow_task():
            time.sleep(1)
            return 3.5

        future = _fake_slow_task()
        self.assertFalse(future.done())
        run_until_complete(future)
        self.assertTrue(future.done())
        self.assertEqual(future.result(), 3.5)
Ejemplo n.º 15
0
    def test_run_on_executor_for_class(self):
        thread_pool = ThreadPoolExecutor(1)

        class Demo(object):
            @thread_pool.coroutine
            def _fake_slow_task(self):
                time.sleep(1)
                return 3.1

        demo = Demo()
        future = demo._fake_slow_task()
        self.assertFalse(future.done())
        run_until_complete(future)
        self.assertTrue(future.done())
        self.assertEqual(future.result(), 3.1)
Ejemplo n.º 16
0
def wait_process_done(process, timeout):
    evt = Event()
    f_p = _process_runner(process, evt)
    try:
        futu = evt.wait(timeout=opt.timeout)
        run_until_complete(futu)
        futu.result()
    except KippAIOTimeoutError:
        try:
            kill_process(process)
        except OSError:
            return f_p.result()
        else:
            raise KippRunnerTimeoutException(
                "process exceeds timeout {}s".format(timeout))
    else:
        return f_p.result()
    finally:
        opt.executor.shutdown()
Ejemplo n.º 17
0
    def test_shutdown_task(self):
        class obj:
            is_done = False

        thread_pool = ThreadPoolExecutor(1)
        future = thread_pool.submit(self._fake_infinite_task, obj)
        self.assertFalse(future.done())
        obj.is_done = True
        thread_pool.shutdown(wait=False)  # shutdown without wait
        self.assertFalse(future.done())
        run_until_complete(future)
        self.assertTrue(future.done())

        thread_pool = ThreadPoolExecutor(1)
        obj.is_done = False
        future = thread_pool.submit(self._fake_infinite_task, obj)
        self.assertFalse(future.done())
        obj.is_done = True
        thread_pool.shutdown()  # wait to finish
        self.assertTrue(future.done())
Ejemplo n.º 18
0
    def test_aio_get_runtime_stats(self):
        aio_movotodb = MovotoDB(is_aio=True)
        f = aio_movotodb.get_runtime_stats(name='test_get')
        self.assertIsInstance(f, Future)
        run_until_complete(f)
        r = f.result()
        _sql_expect = 'select created_at, updated_at, stats from runtime_stats where name=%s;'
        _sql = self.replace_sql(
            self.sqlhelper.getOneBySql.call_args_list[-1][0][0])
        self.assertEqual(r.stats, 'fake_stats')
        self.assertEqual(_sql, _sql_expect)
        self.assertEqual(self.sqlhelper.getOneBySql.call_args_list[-1][0][1],
                         'test_get')

        self.assertRaises(DBValidateError,
                          self.movotodb.get_runtime_stats,
                          name='xxx' * 51)
        self.assertRaises(DBValidateError,
                          self.movotodb.get_runtime_stats,
                          name=None)
Ejemplo n.º 19
0
    def test_future_thread_safe(self):
        def demo():
            pass

        def _callback(f):
            pass

        @coroutine2
        def coro():
            executor = ThreadPoolExecutor(100)
            fs = []
            for _ in range(5000):
                f = executor.submit(demo)
                f.add_done_callback(_callback)
                fs.append(f)

            yield wait(fs)

        f = wait([coro() for _ in range(5)])
        run_until_complete(f)
        f.result()
Ejemplo n.º 20
0
 def test_add_multi_tasks(self):
     thread_pool = ThreadPoolExecutor(5)
     futures = [thread_pool.submit(self._fake_task) for _ in range(5)]
     run_until_complete(wait(futures))
     for f in futures:
         self.assertEqual(f.result(), 2)
Ejemplo n.º 21
0
 def test_wait(self):
     futures = [self._simple_task() for _ in range(5)]
     self.assertFalse(any([f.done() for f in futures]))
     gathered = wait(futures)
     run_until_complete(gathered)
     self.assertTrue([r == 'ok' for r in gathered.result()])
Ejemplo n.º 22
0
 def test_return(self):
     future = self._simple_task()
     self.assertFalse(future.done())
     run_until_complete(future)
     self.assertTrue(future.done())
     self.assertEqual(future.result(), 'ok')
Ejemplo n.º 23
0
 def test_task_exception(self):
     thread_pool = ThreadPoolExecutor(1)
     future = thread_pool.submit(self._fake_task_with_exception)
     run_until_complete(future)
     self.assertRaises(AttributeError, future.result)