diff --git a/shared/utils/setup_logging.py b/shared/utils/setup_logging.py index 4241832..6e90d05 100644 --- a/shared/utils/setup_logging.py +++ b/shared/utils/setup_logging.py @@ -1,5 +1,4 @@ """Definition of setup_logging function.""" -from __future__ import annotations import logging import os @@ -17,7 +16,7 @@ def setup_logging() -> None: '%(message)s' ) datefmt = '%Y-%m-%d %H:%M:%S' - logging.basicConfig(format=fmt, datefmt=datefmt, level=level) + logging.basicConfig(format=fmt, datefmt=datefmt, level=level, force=True) # change levels for modules that spam the log logging.getLogger('pymongo').setLevel(logging.WARNING) logging.getLogger('urllib3').setLevel(logging.INFO) diff --git a/shared/utils/tests/setup_logging_test.py b/shared/utils/tests/setup_logging_test.py new file mode 100644 index 0000000..af05f32 --- /dev/null +++ b/shared/utils/tests/setup_logging_test.py @@ -0,0 +1,38 @@ +"""Definition of tests for setup_logging function.""" + +import logging +import os +import unittest + +from shared.utils import setup_logging + + +class TestFunctionSetupLogging(unittest.TestCase): + """Testing function setup_logging.""" + + def setUp(self): + # set log level names to test + self.env_var_name = 'LOG_LEVEL' + self.log_level_list = [ + 'debug', + 'info', + 'error', + ] + self.wrong_log_level_name = 'weird_name' + + def test_log_level_gets_set(self): + """Test that function updates the logging level of the root logger.""" + for log_level in self.log_level_list: + # set env var + os.environ[self.env_var_name] = log_level + # execute function + setup_logging() + # get logger + logger = logging.getLogger() + # check log level + level_number = getattr(logging, log_level.upper()) + self.assertEqual(logger.getEffectiveLevel(), level_number) + + +if __name__ == '__main__': + unittest.main()