From e05ebf5b6730d02fb2034fffd1e05fbc785ad6e9 Mon Sep 17 00:00:00 2001
From: Tres Seaver <tseaver@palladion.com>
Date: Mon, 19 Mar 2012 19:49:09 +0100
Subject: [PATCH] Get log levels set correctly no matter the order in which tests run.

---
 repoze/who/tests/test_config.py |    6 +++---
 repoze/who/config.py            |   11 ++++++-----
 2 files changed, 9 insertions(+), 8 deletions(-)

diff --git a/repoze/who/config.py b/repoze/who/config.py
index c972687..cad350b 100644
--- a/repoze/who/config.py
+++ b/repoze/who/config.py
@@ -184,6 +184,11 @@
     parser.parse(open(config_file))
     log_stream = None
 
+    if log_level is None:
+        log_level = logging.INFO
+    elif not isinstance(log_level, int):
+        log_level = _LEVELS[log_level.lower()]
+
     if log_file is not None:
         if log_file.lower() == 'stdout':
             log_stream = sys.stdout
@@ -192,11 +197,7 @@
     else:
         log_stream = logging.getLogger('repoze.who')
         log_stream.addHandler(NullHandler())
-
-    if log_level is None:
-        log_level = logging.INFO
-    else:
-        log_level = _LEVELS[log_level.lower()]
+        log_stream.setLevel(log_level or 0)
 
     return PluggableAuthenticationMiddleware(
                 app,
diff --git a/repoze/who/tests/test_config.py b/repoze/who/tests/test_config.py
index 3a844ae..0831dc4 100644
--- a/repoze/who/tests/test_config.py
+++ b/repoze/who/tests/test_config.py
@@ -403,8 +403,8 @@
         logfile = os.path.join(self._tempdir, 'who.log')
         global_conf = {'here': '/'}
         middleware = factory(app, global_conf, config_file=path,
-                             log_file=logfile)
-        self.assertEqual(middleware.logger.getEffectiveLevel(), logging.INFO)
+                             log_file=logfile, log_level=logging.WARN)
+        self.assertEqual(middleware.logger.getEffectiveLevel(), logging.WARN)
         handlers = middleware.logger.handlers
         self.assertEqual(len(handlers), 1)
         self.failUnless(isinstance(handlers[0], logging.StreamHandler))
@@ -419,7 +419,7 @@
         path = self._getTempfile(SAMPLE_CONFIG)
         global_conf = {'here': '/'}
         middleware = factory(app, global_conf, config_file=path)
-        self.assertEqual(middleware.logger.getEffectiveLevel(), 0)
+        self.assertEqual(middleware.logger.getEffectiveLevel(), logging.INFO)
         handlers = middleware.logger.handlers
         self.assertEqual(len(handlers), 1)
         self.failUnless(isinstance(handlers[0], NullHandler))

--
Gitblit v1.9.3