Fix vlog level filtering
use_python_logger() receives a max_level argument which determines the maximum level of traces that have to be logged. Current implementation doesn't handle the max_level properly and this patch fixes it. Also, as the current unit test was only testing a case which worked, this patch extends the coverage by testing also some corner cases. Change-Id: Ic9718825fc8c97ae77bce773ecb42579f7527383
This commit is contained in:
@@ -56,7 +56,7 @@ def use_python_logger(levels=ALL_LEVELS, max_level=None):
|
||||
"""
|
||||
|
||||
if max_level:
|
||||
levels = levels[:-levels.index(max_level)]
|
||||
levels = levels[:levels.index(max_level) + 1]
|
||||
|
||||
# NOTE(twilson) Replace functions directly instead of subclassing so that
|
||||
# debug messages contain the correct function/filename/line information
|
||||
|
||||
@@ -38,13 +38,33 @@ class TestOvsdbVlog(base.TestCase):
|
||||
self.assertTrue(vlog.is_patched(lvl))
|
||||
self.assertFalse(vlog.is_patched(removed_level))
|
||||
|
||||
def test_vlog_max_level(self):
|
||||
def _test_vlog_max_level_helper(self, max_level, patched_levels,
|
||||
unpatched_levels):
|
||||
vlog.reset_logger()
|
||||
max_level = vlog.WARN
|
||||
vlog.use_python_logger(max_level=max_level)
|
||||
patched_levels = (vlog.CRITICAL, vlog.ERROR, vlog.WARN)
|
||||
unpatched_levels = (vlog.INFO, vlog.DEBUG)
|
||||
for lvl in patched_levels:
|
||||
self.assertTrue(vlog.is_patched(lvl))
|
||||
for lvl in unpatched_levels:
|
||||
self.assertFalse(vlog.is_patched(lvl))
|
||||
|
||||
def test_vlog_max_level_WARN(self):
|
||||
max_level = vlog.WARN
|
||||
patched_levels = (vlog.CRITICAL, vlog.ERROR, vlog.WARN)
|
||||
unpatched_levels = (vlog.INFO, vlog.DEBUG)
|
||||
self._test_vlog_max_level_helper(
|
||||
max_level, patched_levels, unpatched_levels)
|
||||
|
||||
def test_vlog_max_level_CRITICAL(self):
|
||||
max_level = vlog.CRITICAL
|
||||
patched_levels = (vlog.CRITICAL,)
|
||||
unpatched_levels = (vlog.ERROR, vlog.WARN, vlog.INFO, vlog.DEBUG)
|
||||
self._test_vlog_max_level_helper(
|
||||
max_level, patched_levels, unpatched_levels)
|
||||
|
||||
def test_vlog_max_level_DEBUG(self):
|
||||
max_level = vlog.DEBUG
|
||||
patched_levels = (vlog.CRITICAL, vlog.ERROR, vlog.WARN, vlog.INFO,
|
||||
vlog.DEBUG)
|
||||
unpatched_levels = ()
|
||||
self._test_vlog_max_level_helper(
|
||||
max_level, patched_levels, unpatched_levels)
|
||||
|
||||
Reference in New Issue
Block a user