summaryrefslogtreecommitdiffstats
path: root/Lib/test/support/logging_helper.py
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/test/support/logging_helper.py')
-rw-r--r--Lib/test/support/logging_helper.py29
1 files changed, 29 insertions, 0 deletions
diff --git a/Lib/test/support/logging_helper.py b/Lib/test/support/logging_helper.py
new file mode 100644
index 0000000..12fcca4
--- /dev/null
+++ b/Lib/test/support/logging_helper.py
@@ -0,0 +1,29 @@
+import logging.handlers
+
+class TestHandler(logging.handlers.BufferingHandler):
+ def __init__(self, matcher):
+ # BufferingHandler takes a "capacity" argument
+ # so as to know when to flush. As we're overriding
+ # shouldFlush anyway, we can set a capacity of zero.
+ # You can call flush() manually to clear out the
+ # buffer.
+ logging.handlers.BufferingHandler.__init__(self, 0)
+ self.matcher = matcher
+
+ def shouldFlush(self):
+ return False
+
+ def emit(self, record):
+ self.format(record)
+ self.buffer.append(record.__dict__)
+
+ def matches(self, **kwargs):
+ """
+ Look for a saved dict whose keys/values match the supplied arguments.
+ """
+ result = False
+ for d in self.buffer:
+ if self.matcher.matches(d, **kwargs):
+ result = True
+ break
+ return result