From d6b53f96464e73165af86f1bdf8df1fbc2a2b8a9 Mon Sep 17 00:00:00 2001
From: Tres Seaver <tseaver@palladion.com>
Date: Tue, 17 May 2011 17:44:52 +0200
Subject: [PATCH] Enabled standard use of logging module's configuration mechanism.

---
 repoze/who/tests/test_config.py |   36 ++++++++++++++++++++++++++++++++++++
 1 files changed, 36 insertions(+), 0 deletions(-)

diff --git a/repoze/who/tests/test_config.py b/repoze/who/tests/test_config.py
index 433307e..ef607a6 100644
--- a/repoze/who/tests/test_config.py
+++ b/repoze/who/tests/test_config.py
@@ -405,8 +405,44 @@
         middleware = factory(app, global_conf, config_file=path,
                              log_file=logfile)
         self.assertEqual(middleware.logger.getEffectiveLevel(), logging.INFO)
+        handlers = middleware.logger.handlers
+        self.assertEqual(len(handlers), 1)
+        self.failUnless(isinstance(handlers[0], logging.StreamHandler))
+        self.assertEqual(handlers[0].stream.name, logfile)
         logging.shutdown()
 
+    def test_sample_config_wo_log_file(self):
+        import logging
+        from repoze.who.config import NullHandler
+        app = DummyApp()
+        factory = self._getFactory()
+        path = self._getTempfile(SAMPLE_CONFIG)
+        global_conf = {'here': '/'}
+        middleware = factory(app, global_conf, config_file=path)
+        self.assertEqual(middleware.logger.getEffectiveLevel(), 0)
+        handlers = middleware.logger.handlers
+        self.assertEqual(len(handlers), 1)
+        self.failUnless(isinstance(handlers[0], NullHandler))
+        logging.shutdown()
+
+class NullHandlerTests(unittest.TestCase):
+
+    def _getTargetClass(self):
+        from repoze.who.config import NullHandler
+        return NullHandler
+
+    def _makeOne(self):
+        return self._getTargetClass()()
+
+    def test_inheritance(self):
+        import logging
+        handler = self._makeOne()
+        self.failUnless(isinstance(handler, logging.Handler))
+
+    def test_emit_doesnt_raise_NotImplementedError(self):
+        handler = self._makeOne()
+        handler.emit(object())
+
 class Test_make_api_factory_with_config(unittest.TestCase):
     _tempdir = None
     _warning_filters = None

--
Gitblit v1.9.3