diff options
author | Zac Medico <zmedico@gentoo.org> | 2021-01-18 03:16:53 -0800 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2021-01-18 03:31:57 -0800 |
commit | be0b5d33ee8b355dcc9932b52bb1e025e6bd58d4 (patch) | |
tree | 0135cd8023f2867bb812290bbe5cab488801af06 | |
parent | PipeLoggerTestCase: Use async and await syntax (diff) | |
download | portage-be0b5d33ee8b355dcc9932b52bb1e025e6bd58d4.tar.gz portage-be0b5d33ee8b355dcc9932b52bb1e025e6bd58d4.tar.bz2 portage-be0b5d33ee8b355dcc9932b52bb1e025e6bd58d4.zip |
RetryTestCase: Use async and await syntax
Signed-off-by: Zac Medico <zmedico@gentoo.org>
-rw-r--r-- | lib/portage/tests/util/futures/test_retry.py | 28 |
1 files changed, 9 insertions, 19 deletions
diff --git a/lib/portage/tests/util/futures/test_retry.py b/lib/portage/tests/util/futures/test_retry.py index 6648b1b2c..bce48a693 100644 --- a/lib/portage/tests/util/futures/test_retry.py +++ b/lib/portage/tests/util/futures/test_retry.py @@ -1,4 +1,4 @@ -# Copyright 2018-2020 Gentoo Authors +# Copyright 2018-2021 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 from concurrent.futures import Future, ThreadPoolExecutor @@ -32,18 +32,11 @@ class SucceedLater: def __init__(self, duration): self._succeed_time = time.monotonic() + duration - def __call__(self): - loop = global_event_loop() - result = loop.create_future() + async def __call__(self): remaining = self._succeed_time - time.monotonic() if remaining > 0: - loop.call_soon_threadsafe(lambda: None if result.done() else - result.set_exception(SucceedLaterException( - 'time until success: {} seconds'.format(remaining)))) - else: - loop.call_soon_threadsafe(lambda: None if result.done() else - result.set_result('success')) - return result + await asyncio.sleep(remaining) + return 'success' class SucceedNeverException(Exception): @@ -54,20 +47,17 @@ class SucceedNever: """ A callable object that never succeeds. """ - def __call__(self): - loop = global_event_loop() - result = loop.create_future() - loop.call_soon_threadsafe(lambda: None if result.done() else - result.set_exception(SucceedNeverException('expected failure'))) - return result + async def __call__(self): + raise SucceedNeverException('expected failure') class HangForever: """ A callable object that sleeps forever. """ - def __call__(self): - return asyncio.Future() + async def __call__(self): + while True: + await asyncio.sleep(9) class RetryTestCase(TestCase): |