mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-04-28 04:07:32 -07:00
Gentoo-Bug: https://bugs.gentoo.org/show_bug.cgi?id=555424 Package-Manager: portage-2.2.23 Signed-off-by: Justin Lecher <jlec@gentoo.org>
75 lines
3.1 KiB
Diff
75 lines
3.1 KiB
Diff
From 25f4800d62f339f81b09c894275a3af4b284fb62 Mon Sep 17 00:00:00 2001
|
|
From: Colin Watson <cjwatson@canonical.com>
|
|
Date: Wed, 19 Aug 2015 03:06:09 +0100
|
|
Subject: [PATCH] Port twisted.deferredruntest to Twisted >= 15.1.0
|
|
|
|
Twisted 15.1.0 removes the compatibility import of _LogObserver in
|
|
twisted.trial.unittest. This is unfortunate for us, but it's what we
|
|
get for using an internal interface. It at least still exists in
|
|
twisted.trial._synctest, so we can get it from there.
|
|
|
|
Twisted 15.2.0 adds the new twisted.logger framework, which requires a
|
|
slight adjustment to run_with_log_observers. There's no longer a
|
|
supported interface to get hold of all log observers, but since we're
|
|
already using an internal interface (see above), what's one more?
|
|
|
|
This passes "make check" with the current release, Twisted 15.3.0.
|
|
---
|
|
testtools/deferredruntest.py | 27 +++++++++++++++++++++++----
|
|
1 file changed, 23 insertions(+), 4 deletions(-)
|
|
|
|
diff --git a/testtools/deferredruntest.py b/testtools/deferredruntest.py
|
|
index c33e14a..04cdb0f 100644
|
|
--- a/testtools/deferredruntest.py
|
|
+++ b/testtools/deferredruntest.py
|
|
@@ -27,8 +27,15 @@
|
|
)
|
|
|
|
from twisted.internet import defer
|
|
+try:
|
|
+ from twisted.logger import globalLogPublisher
|
|
+except ImportError:
|
|
+ globalLogPublisher = None
|
|
from twisted.python import log
|
|
-from twisted.trial.unittest import _LogObserver
|
|
+try:
|
|
+ from twisted.trial.unittest import _LogObserver
|
|
+except ImportError:
|
|
+ from twisted.trial._synctest import _LogObserver
|
|
|
|
|
|
class _DeferredRunTest(RunTest):
|
|
@@ -53,9 +60,21 @@ def _run_user(self, function, *args):
|
|
|
|
def run_with_log_observers(observers, function, *args, **kwargs):
|
|
"""Run 'function' with the given Twisted log observers."""
|
|
- real_observers = list(log.theLogPublisher.observers)
|
|
+ if globalLogPublisher is not None:
|
|
+ # Twisted >= 15.2.0, with the new twisted.logger framework.
|
|
+ # log.theLogPublisher.observers will only contain legacy observers;
|
|
+ # we need to look at globalLogPublisher._observers, which contains
|
|
+ # both legacy and modern observers, and add and remove them via
|
|
+ # globalLogPublisher. However, we must still add and remove the
|
|
+ # observers we want to run with via log.theLogPublisher, because
|
|
+ # _LogObserver may consider old keys and require them to be mapped.
|
|
+ publisher = globalLogPublisher
|
|
+ real_observers = list(publisher._observers)
|
|
+ else:
|
|
+ publisher = log.theLogPublisher
|
|
+ real_observers = list(publisher.observers)
|
|
for observer in real_observers:
|
|
- log.theLogPublisher.removeObserver(observer)
|
|
+ publisher.removeObserver(observer)
|
|
for observer in observers:
|
|
log.theLogPublisher.addObserver(observer)
|
|
try:
|
|
@@ -64,7 +83,7 @@ def run_with_log_observers(observers, function, *args, **kwargs):
|
|
for observer in observers:
|
|
log.theLogPublisher.removeObserver(observer)
|
|
for observer in real_observers:
|
|
- log.theLogPublisher.addObserver(observer)
|
|
+ publisher.addObserver(observer)
|
|
|
|
|
|
# Observer of the Twisted log that we install during tests.
|