aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2018-04-16 22:44:14 -0700
committerZac Medico <zmedico@gentoo.org>2018-04-16 22:48:42 -0700
commite6ae7fdc18a876d3a0f5fcea437b5f448d1dcb4e (patch)
tree5a6a702fc18087cc84910295f034c2aa2ff49eab
parentUpdates for portage-2.3.29 release (diff)
downloadportage-e6ae7fdc18a876d3a0f5fcea437b5f448d1dcb4e.tar.gz
portage-e6ae7fdc18a876d3a0f5fcea437b5f448d1dcb4e.tar.bz2
portage-e6ae7fdc18a876d3a0f5fcea437b5f448d1dcb4e.zip
Use asyncio shim for TimeoutError and other exceptions
-rw-r--r--pym/portage/sync/modules/rsync/rsync.py4
-rw-r--r--pym/portage/tests/util/futures/test_retry.py7
-rw-r--r--pym/portage/util/futures/_asyncio/__init__.py10
-rw-r--r--pym/portage/util/futures/retry.py4
4 files changed, 16 insertions, 9 deletions
diff --git a/pym/portage/sync/modules/rsync/rsync.py b/pym/portage/sync/modules/rsync/rsync.py
index de8327a55..180bf8571 100644
--- a/pym/portage/sync/modules/rsync/rsync.py
+++ b/pym/portage/sync/modules/rsync/rsync.py
@@ -25,7 +25,7 @@ warn = create_color_func("WARN")
from portage.const import VCS_DIRS, TIMESTAMP_FORMAT, RSYNC_PACKAGE_ATOM
from portage.util._eventloop.global_event_loop import global_event_loop
from portage.util import writemsg, writemsg_stdout
-from portage.util.futures.futures import TimeoutError
+from portage.util.futures import asyncio
from portage.sync.getaddrinfo_validate import getaddrinfo_validate
from _emerge.UserQuery import UserQuery
from portage.sync.syncbase import NewBase
@@ -163,7 +163,7 @@ class RsyncSync(NewBase):
decorated_func = retry_decorator(func_coroutine)
loop.run_until_complete(decorated_func())
out.eend(0)
- except (GematoException, TimeoutError) as e:
+ except (GematoException, asyncio.TimeoutError) as e:
writemsg_level("!!! Manifest verification impossible due to keyring problem:\n%s\n"
% (e,),
level=logging.ERROR, noiselevel=-1)
diff --git a/pym/portage/tests/util/futures/test_retry.py b/pym/portage/tests/util/futures/test_retry.py
index 409f50971..27d8c7b61 100644
--- a/pym/portage/tests/util/futures/test_retry.py
+++ b/pym/portage/tests/util/futures/test_retry.py
@@ -12,7 +12,6 @@ from portage.tests import TestCase
from portage.util._eventloop.global_event_loop import global_event_loop
from portage.util.backoff import RandomExponentialBackoff
from portage.util.futures import asyncio
-from portage.util.futures.futures import TimeoutError
from portage.util.futures.retry import retry
from portage.util.monotonic import monotonic
@@ -97,7 +96,7 @@ class RetryTestCase(TestCase):
decorated_func = decorator(func_coroutine)
done, pending = loop.run_until_complete(asyncio.wait([decorated_func()], loop=loop))
self.assertEqual(len(done), 1)
- self.assertTrue(isinstance(done.pop().exception().__cause__, TimeoutError))
+ self.assertTrue(isinstance(done.pop().exception().__cause__, asyncio.TimeoutError))
def testHangForeverReraise(self):
loop = global_event_loop()._asyncio_wrapper
@@ -108,7 +107,7 @@ class RetryTestCase(TestCase):
decorated_func = decorator(func_coroutine)
done, pending = loop.run_until_complete(asyncio.wait([decorated_func()], loop=loop))
self.assertEqual(len(done), 1)
- self.assertTrue(isinstance(done.pop().exception(), TimeoutError))
+ self.assertTrue(isinstance(done.pop().exception(), asyncio.TimeoutError))
def testCancelRetry(self):
loop = global_event_loop()._asyncio_wrapper
@@ -144,4 +143,4 @@ class RetryTestCase(TestCase):
decorated_func = decorator(func_coroutine)
done, pending = loop.run_until_complete(asyncio.wait([decorated_func()], loop=loop))
self.assertEqual(len(done), 1)
- self.assertTrue(isinstance(done.pop().exception().__cause__, TimeoutError))
+ self.assertTrue(isinstance(done.pop().exception().__cause__, asyncio.TimeoutError))
diff --git a/pym/portage/util/futures/_asyncio/__init__.py b/pym/portage/util/futures/_asyncio/__init__.py
index d1584fdea..9ae050874 100644
--- a/pym/portage/util/futures/_asyncio/__init__.py
+++ b/pym/portage/util/futures/_asyncio/__init__.py
@@ -6,7 +6,10 @@ __all__ = (
'FIRST_COMPLETED',
'FIRST_EXCEPTION',
'ensure_future',
+ 'CancelledError',
'Future',
+ 'InvalidStateError',
+ 'TimeoutError',
'get_child_watcher',
'get_event_loop',
'set_child_watcher',
@@ -26,7 +29,12 @@ import portage
portage.proxy.lazyimport.lazyimport(globals(),
'portage.util.futures.unix_events:DefaultEventLoopPolicy',
)
-from portage.util.futures.futures import Future
+from portage.util.futures.futures import (
+ CancelledError,
+ Future,
+ InvalidStateError,
+ TimeoutError,
+)
from portage.util.futures._asyncio.tasks import (
ALL_COMPLETED,
FIRST_COMPLETED,
diff --git a/pym/portage/util/futures/retry.py b/pym/portage/util/futures/retry.py
index 902ed163a..82012d2f3 100644
--- a/pym/portage/util/futures/retry.py
+++ b/pym/portage/util/futures/retry.py
@@ -10,7 +10,7 @@ import functools
from portage.exception import PortageException
from portage.util._eventloop.global_event_loop import global_event_loop
-from portage.util.futures.futures import TimeoutError
+from portage.util.futures import asyncio
class RetryError(PortageException):
@@ -170,7 +170,7 @@ class _Retry(object):
def _retry_error(self):
if self._previous_result is None or self._previous_result.cancelled():
- cause = TimeoutError()
+ cause = asyncio.TimeoutError()
else:
cause = self._previous_result.exception()