blob: 4ebcbfb050473c02d4df3841792fc72232ef4f7d [file] [log] [blame]
#!/usr/bin/env python -tt
"""
unittests.test_logger
"""
try:
import unittest2 as unittest
except ImportError:
import unittest
import logging
import dbsign.logger as L
class TestLogger(unittest.TestCase):
def test_logger(self): # type: () -> ()
# This test assumes the initial, intended semantics of the various
# loggers returned. If semantics change, so must the tests.
init_level = L._root.level
test_level = 7
log_name = "TestLoggerLogger"
log = L.get_logger(log_name)
with self.subTest(method=L.get_logger):
self.assertEqual(log.__class__, logging.Logger)
self.assertEqual(log_name, log.name)
# Returned loggers should default to 0 (inherit parent level)
self.assertEqual(0, log.level)
with self.subTest(method=L.set_level):
# Assert set_level() sets root level, not sublogger level
L.set_level(test_level)
self.assertEqual(test_level, L._root.level)
self.assertEqual(0, log.level)
# Restore and verify
L.set_level(init_level)
self.assertEqual(init_level, L._root.level)
self.assertEqual(0, log.level)
def test_normalize(self): # type: () -> ()
self.assertEqual(logging.WARN, L.normalize(logging.WARN))
self.assertEqual(logging.DEBUG, L.normalize(logging.DEBUG - 1))
self.assertEqual(logging.CRITICAL, L.normalize(logging.CRITICAL + 1))