[CalendarServer-changes] [4167] CalendarServer/trunk/twistedcaldav

source_changes at macosforge.org source_changes at macosforge.org
Mon May 4 17:18:27 PDT 2009


Revision: 4167
          http://trac.macosforge.org/projects/calendarserver/changeset/4167
Author:   wsanchez at apple.com
Date:     2009-05-04 17:18:27 -0700 (Mon, 04 May 2009)
Log Message:
-----------
Add _enabled properties on loggers

Modified Paths:
--------------
    CalendarServer/trunk/twistedcaldav/log.py
    CalendarServer/trunk/twistedcaldav/test/test_log.py

Modified: CalendarServer/trunk/twistedcaldav/log.py
===================================================================
--- CalendarServer/trunk/twistedcaldav/log.py	2009-05-04 22:21:50 UTC (rev 4166)
+++ CalendarServer/trunk/twistedcaldav/log.py	2009-05-05 00:18:27 UTC (rev 4167)
@@ -133,7 +133,7 @@
     Clears all log levels to the default.
     """
     logLevelsByNamespace.clear()
-    logLevelsByNamespace[None] = "info"
+    logLevelsByNamespace[None] = "info"  # Default log level
 
 logLevelsByNamespace = {}
 clearLogLevels()
@@ -317,11 +317,16 @@
     def log_emit(self, message, level=level, **kwargs):
         self.emit(level, message, **kwargs)
 
+    def will_emit(self, level=level):
+        return self.willLogAtLevel(level)
+
     log_emit.__doc__ = doc
 
     setattr(Logger, level, log_emit)
+    setattr(Logger, level + "_enabled", property(will_emit))
 
     del log_emit
+    del will_emit
 
     #
     # Attach methods to LoggingMixIn
@@ -329,11 +334,17 @@
     def log_emit(self, message, level=level, **kwargs):
         self.logger.emit(level, message, **kwargs)
 
+    def will_emit(self=log_emit, level=level):
+        return self.logger.willLogAtLevel(level)
+
     log_emit.__doc__ = doc
+    log_emit.enabled = will_emit
 
-    setattr(LoggingMixIn, "log_%s" % (level,), log_emit)
+    setattr(LoggingMixIn, "log_" + level, log_emit)
+    setattr(LoggingMixIn, "log_" + level + "_enabled", property(will_emit))
 
     del log_emit
+    del will_emit
 
 del level
 

Modified: CalendarServer/trunk/twistedcaldav/test/test_log.py
===================================================================
--- CalendarServer/trunk/twistedcaldav/test/test_log.py	2009-05-04 22:21:50 UTC (rev 4166)
+++ CalendarServer/trunk/twistedcaldav/test/test_log.py	2009-05-05 00:18:27 UTC (rev 4167)
@@ -65,27 +65,42 @@
         object = LoggingEnabledObject()
         self.assertEquals(object.logger.namespace, "twistedcaldav.test.test_log.LoggingEnabledObject")
 
-    def test_basic(self):
+    def test_basic_Logger(self):
         """
-        Test that log levels and messages are emitted correctly.
-        Tests both Logger and LoggingMixIn.
+        Test that log levels and messages are emitted correctly for
+        Logger.
         """
-        object = LoggingEnabledObject()
-
         for level in logLevels:
             message = "This is a %s message" % (level,)
 
             log = TestLogger()
-            object.logger = log
+            method = getattr(log, level)
+            method(message, junk=message)
 
-            for method in (getattr(log, level), getattr(object, "log_" + level)):
-                method(message, junk=message)
+            # Ensure that test_emit got called with expected arguments
+            self.assertEquals(log.emitted["level"], level)
+            self.assertEquals(log.emitted["message"], message)
+            self.assertEquals(log.emitted["kwargs"]["junk"], message)
 
-                # Ensure that test_emit got called with expected arguments
-                self.assertEquals(log.emitted["level"], level)
-                self.assertEquals(log.emitted["message"], message)
-                self.assertEquals(log.emitted["kwargs"]["junk"], message)
+    def test_basic_LoggingMixIn(self):
+        """
+        Test that log levels and messages are emitted correctly for
+        LoggingMixIn.
+        """
+        for level in logLevels:
+            message = "This is a %s message" % (level,)
 
+            object = LoggingEnabledObject()
+            object.logger = TestLogger()
+
+            method = getattr(object, "log_" + level)
+            method(message, junk=message)
+
+            # Ensure that test_emit got called with expected arguments
+            self.assertEquals(object.logger.emitted["level"], level)
+            self.assertEquals(object.logger.emitted["message"], message)
+            self.assertEquals(object.logger.emitted["kwargs"]["junk"], message)
+
     def test_defaultLogLevel(self):
         """
         Default log level is used.
@@ -122,3 +137,45 @@
         self.assertEquals(logLevelForNamespace("twisted.web2.dav"            ), defaultLogLevel)
         self.assertEquals(logLevelForNamespace("twisted.web2.dav.test"       ), defaultLogLevel)
         self.assertEquals(logLevelForNamespace("twisted.web2.dav.test1.test2"), defaultLogLevel)
+
+    def test_willLogAtLevel(self):
+        """
+        willLogAtLevel()
+        """
+        clearLogLevels()
+
+        log = Logger()
+
+        for level in logLevels:
+            if cmpLogLevels(level, log.level()) < 0:
+                self.assertFalse(log.willLogAtLevel(level))
+            else:
+                self.assertTrue(log.willLogAtLevel(level))
+
+    def test_logMethodTruthiness_Logger(self):
+        """
+        Logger's log level functions/methods have true/false
+        value based on whether they will log.
+        """
+        log = Logger()
+
+        for level in logLevels:
+            enabled = getattr(log, level + "_enabled")
+            if enabled:
+                self.assertTrue(log.willLogAtLevel(level))
+            else:
+                self.assertFalse(log.willLogAtLevel(level))
+
+    def test_logMethodTruthiness_LoggingMixIn(self):
+        """
+        LoggingMixIn's log level functions/methods have true/false
+        value based on whether they will log.
+        """
+        object = LoggingEnabledObject()
+
+        for level in logLevels:
+            enabled = getattr(object, "log_" + level + "_enabled")
+            if enabled:
+                self.assertTrue(object.logger.willLogAtLevel(level))
+            else:
+                self.assertFalse(object.logger.willLogAtLevel(level))
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20090504/7244e4e1/attachment-0001.html>


More information about the calendarserver-changes mailing list