[CalendarServer-changes] [11682] CalendarServer/trunk/twext/python
source_changes at macosforge.org
source_changes at macosforge.org
Thu Sep 12 16:34:19 PDT 2013
Revision: 11682
http://trac.calendarserver.org//changeset/11682
Author: wsanchez at apple.com
Date: 2013-09-12 16:34:19 -0700 (Thu, 12 Sep 2013)
Log Message:
-----------
Add DefaultLogPublisherTests
Modified Paths:
--------------
CalendarServer/trunk/twext/python/log.py
CalendarServer/trunk/twext/python/test/test_log.py
Modified: CalendarServer/trunk/twext/python/log.py
===================================================================
--- CalendarServer/trunk/twext/python/log.py 2013-09-12 22:21:16 UTC (rev 11681)
+++ CalendarServer/trunk/twext/python/log.py 2013-09-12 23:34:19 UTC (rev 11682)
@@ -646,6 +646,8 @@
"""
L{ILogFilterPredicate} that filters out events with a log level
lower than the log level for the event's namespace.
+
+ Events that not not have a log level or namespace are also dropped.
"""
def __init__(self):
@@ -708,11 +710,15 @@
def __call__(self, event):
- level = event["log_level"]
- namespace = event["log_namespace"]
+ level = event.get("log_level", None)
+ namespace = event.get("log_namespace", None)
- if (LogLevel._priorityForLevel(level) <
- LogLevel._priorityForLevel(self.logLevelForNamespace(namespace))):
+ if (
+ level is None or
+ namespace is None or
+ LogLevel._priorityForLevel(level) <
+ LogLevel._priorityForLevel(self.logLevelForNamespace(namespace))
+ ):
return PredicateResult.no
return PredicateResult.maybe
Modified: CalendarServer/trunk/twext/python/test/test_log.py
===================================================================
--- CalendarServer/trunk/twext/python/test/test_log.py 2013-09-12 22:21:16 UTC (rev 11681)
+++ CalendarServer/trunk/twext/python/test/test_log.py 2013-09-12 23:34:19 UTC (rev 11682)
@@ -25,7 +25,7 @@
pythonLogLevelMapping,
formatEvent, formatUnformattableEvent, formatWithCall,
Logger, LegacyLogger,
- ILogObserver, LogPublisher,
+ ILogObserver, LogPublisher, DefaultLogPublisher,
FilteringLogObserver, PredicateResult,
LogLevelFilterPredicate,
)
@@ -613,6 +613,49 @@
+class DefaultLogPublisherTests(SetUpTearDown, unittest.TestCase):
+ def test_filteredObserver(self):
+ namespace = __name__
+
+ event_debug = dict(log_namespace=namespace, log_level=LogLevel.debug, log_format="")
+ event_error = dict(log_namespace=namespace, log_level=LogLevel.error, log_format="")
+ events = []
+
+ observer = lambda e: events.append(e)
+
+ publisher = DefaultLogPublisher()
+
+ publisher.addObserver(observer, filtered=True)
+ publisher(event_debug)
+ publisher(event_error)
+ self.assertNotIn(event_debug, events)
+ self.assertIn(event_error, events)
+
+
+ def test_filteredObserverNoFilteringKeys(self):
+ event_debug = dict(log_level=LogLevel.debug)
+ event_error = dict(log_level=LogLevel.error)
+ event_none = dict()
+ events = []
+
+ observer = lambda e: events.append(e)
+
+ publisher = DefaultLogPublisher()
+ publisher.addObserver(observer, filtered=True)
+ publisher(event_debug)
+ publisher(event_error)
+ publisher(event_none)
+ self.assertNotIn(event_debug, events)
+ self.assertNotIn(event_error, events)
+ self.assertNotIn(event_none, events)
+
+
+
+# def test_addObserver_unfiltered(self):
+# pass
+
+
+
class FilteringLogObserverTests(SetUpTearDown, unittest.TestCase):
"""
Tests for L{FilteringLogObserver}.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20130912/8d739a84/attachment-0001.html>
More information about the calendarserver-changes
mailing list