aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2021-01-18 03:16:53 -0800
committerZac Medico <zmedico@gentoo.org>2021-01-18 03:31:57 -0800
commitbe0b5d33ee8b355dcc9932b52bb1e025e6bd58d4 (patch)
tree0135cd8023f2867bb812290bbe5cab488801af06
parentPipeLoggerTestCase: Use async and await syntax (diff)
downloadportage-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.py28
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):