--- a +++ b/tests/utils/test_logger.py @@ -0,0 +1,39 @@ +import logging +import os +import unittest + +from dosma.utils import env +from dosma.utils.logger import setup_logger + +from .. import util + + +class TestSetupLogger(unittest.TestCase): + def test_log_info(self): + debug_val = env.debug() + + env.debug(False) + setup_logger(None) + with self.assertLogs("dosma", level="INFO"): + logging.getLogger("dosma").info("Sample log at INFO level") + + env.debug(True) + setup_logger(None) + with self.assertLogs("dosma", level="DEBUG"): + logging.getLogger("dosma").debug("Sample log at DEBUG level") + + env.debug(debug_val) + + def test_makes_file(self): + setup_logger(util.TEMP_PATH) + assert os.path.isfile(os.path.join(util.TEMP_PATH, "dosma.log")) + + def test_overwrite_handlers(self): + logger = setup_logger(name="foobar") + assert len(logger.handlers) == 2 + + logger = setup_logger(name="foobar", abbrev_name="foo") + assert len(logger.handlers) == 4 + + logger = setup_logger(name="foobar", overwrite_handlers=True) + assert len(logger.handlers) == 2