diff --git a/app/src/server.py b/app/src/server.py index ed8953a..7970291 100644 --- a/app/src/server.py +++ b/app/src/server.py @@ -26,6 +26,12 @@ class Server(): serv_name = '' version = '' src_dir = '' + + #### + # The following default values are used for the unit tests only, since + # `Server.parse_args()' will not be called during test setup. + # Ofcorse, we can call `Server.parse_args()' in a test case explicitly + # to overwrite this values config_path = './config/' json_config = '' toml_config = '' @@ -86,8 +92,7 @@ class Server(): self.log_path = args.log_path self.log_backups = args.log_backups - def init_logging_system(self): # pragma: no cover - + def init_logging_system(self): setattr(logging.handlers, "log_path", self.log_path) setattr(logging.handlers, "log_backups", self.log_backups) os.makedirs(self.log_path, exist_ok=True) diff --git a/app/tests/test_server.py b/app/tests/test_server.py index 1670402..7bda1b4 100644 --- a/app/tests/test_server.py +++ b/app/tests/test_server.py @@ -91,6 +91,34 @@ class TestServerClass: s.parse_args(['--inalid', '/tmp/my-config']) assert exc_info.value.code == 2 + def test_init_logging_system(self): + s = self.FakeServer() + s.src_dir = 'app/src/' + s.init_logging_system() + assert s.log_backups == 0 + assert s.log_level == None + assert logging.handlers.log_path == './log/' + assert logging.handlers.log_backups == 0 + assert logging.getLogger().level == logging.DEBUG + assert logging.getLogger('msg').level == logging.DEBUG + assert logging.getLogger('conn').level == logging.DEBUG + assert logging.getLogger('data').level == logging.DEBUG + assert logging.getLogger('tracer').level == logging.INFO + assert logging.getLogger('asyncio').level == logging.INFO + + os.environ["LOG_LVL"] = "WARN" + s.parse_args(['--log_backups', '3']) + s.init_logging_system() + assert s.log_backups == 3 + assert s.log_level == logging.WARNING + assert logging.handlers.log_backups == 3 + assert logging.getLogger().level == s.log_level + assert logging.getLogger('msg').level == s.log_level + assert logging.getLogger('conn').level == s.log_level + assert logging.getLogger('data').level == s.log_level + assert logging.getLogger('tracer').level == s.log_level + assert logging.getLogger('asyncio').level == s.log_level + class TestApp: @pytest.mark.asyncio