]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
tests/util.py: fix compatibility with Python 2
authorMarc Hoersken <info@marc-hoersken.de>
Mon, 30 Nov 2020 21:16:21 +0000 (22:16 +0100)
committerMarc Hoersken <info@marc-hoersken.de>
Thu, 3 Dec 2020 19:57:39 +0000 (20:57 +0100)
Backporting the Python 3 implementation of setStream
to ClosingFileHandler as a fallback within Python 2.

Reported-by: Jay Satiro
Fixes #6259
Closes #6270

tests/util.py

index 2ac6ff132261f7d5b39fe358e09087980d853380..70f6b43517de70f4472e7748578429b9e6bdb674 100755 (executable)
@@ -46,6 +46,21 @@ class ClosingFileHandler(logging.StreamHandler):
             super(ClosingFileHandler, self).emit(record)
             self.setStream(None)
 
+    def setStream(self, stream):
+        setStream = getattr(super(ClosingFileHandler, self), 'setStream', None)
+        if callable(setStream):
+            return setStream(stream)
+        if stream is self.stream:
+            result = None
+        else:
+            result = self.stream
+            self.acquire()
+            try:
+                self.flush()
+                self.stream = stream
+            finally:
+                self.release()
+        return result
 
 class TestData(object):
     def __init__(self, data_folder):