[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