瀏覽代碼

Look up logging level case insensitive.

Mike Naberezny 12 年之前
父節點
當前提交
928028b8a0
共有 2 個文件被更改,包括 10 次插入1 次删除
  1. 2 1
      supervisor/datatypes.py
  2. 8 0
      supervisor/tests/test_datatypes.py

+ 2 - 1
supervisor/datatypes.py

@@ -351,7 +351,8 @@ def existing_dirpath(v):
                        'does not exist.' % v)
 
 def logging_level(value):
-    level = getLevelNumByDescription(value)
+    s = str(value).lower()
+    level = getLevelNumByDescription(s)
     if level is None:
         raise ValueError('bad logging level name %r' % value)
     return level

+ 8 - 0
supervisor/tests/test_datatypes.py

@@ -177,6 +177,14 @@ class DatatypesTest(unittest.TestCase):
         finally:
             datatypes.existing_dirpath = func
 
+    def test_logging_level_returns_level_from_name_case_insensitive(self):
+        from supervisor.loggers import LevelsByName
+        self.assertEqual(datatypes.logging_level("wArN"), LevelsByName.WARN)
+
+    def test_logging_level_raises_for_bad_level_name(self):
+        self.assertRaises(ValueError,
+                          datatypes.logging_level, "foo")
+
     def test_integer(self):
         from supervisor.datatypes import integer
         self.assertRaises(ValueError, integer, 'abc')