コード例 #1
0
    def test_done_callback_with_cancel(self):
        was_cancelled = [None]

        def fn(callback_future):
            was_cancelled[0] = callback_future.cancelled()

        f = Future()
        f.add_done_callback(fn)
        assert f.cancel()
        assert was_cancelled[0]
コード例 #2
0
    def test_done_callback_already_successful(self):
        callback_result = [None]

        def fn(callback_future):
            callback_result[0] = callback_future.result()

        f = Future()
        f.set_result(5)
        f.add_done_callback(fn)
        assert 5 == callback_result[0]
コード例 #3
0
    def test_done_callback_with_exception(self):
        callback_exception = [None]

        def fn(callback_future):
            callback_exception[0] = callback_future.exception()

        f = Future()
        f.add_done_callback(fn)
        f.set_exception(Exception('test'))
        assert ('test', ) == callback_exception[0].args
コード例 #4
0
    def test_done_callback_with_result(self):
        callback_result = [None]

        def fn(callback_future):
            callback_result[0] = callback_future.result()

        f = Future()
        f.add_done_callback(fn)
        f.set_result(5)
        assert 5 == callback_result[0]
コード例 #5
0
ファイル: test_futures.py プロジェクト: ogrisel/loky
    def test_done_callback_raises(self):
        # with captured_stderr() as stderr:
        raising_was_called = [False]
        fn_was_called = [False]

        def raising_fn(callback_future):
            raising_was_called[0] = True
            raise Exception('doh!')

        def fn(callback_future):
            fn_was_called[0] = True

        f = Future()
        f.add_done_callback(raising_fn)
        f.add_done_callback(fn)
        f.set_result(5)
        assert raising_was_called
        assert fn_was_called
コード例 #6
0
    def test_done_callback_raises(self):
        with captured_stderr() as stderr:
            import logging
            log = logging.getLogger("concurrent.futures")
            log.addHandler(logging.StreamHandler())
            raising_was_called = [False]
            fn_was_called = [False]

            def raising_fn(callback_future):
                raising_was_called[0] = True
                raise Exception('foobar')

            def fn(callback_future):
                fn_was_called[0] = True

            f = Future()
            f.add_done_callback(raising_fn)
            f.add_done_callback(fn)
            f.set_result(5)
            assert raising_was_called[0]
            assert fn_was_called[0]
            assert 'Exception: foobar' in stderr.getvalue()

            del log.handlers[:]
コード例 #7
0
def create_future(state=PENDING, exception=None, result=None):
    f = Future()
    f._state = state
    f._exception = exception
    f._result = result
    return f