diff --git a/api/tests/unit/util/test_logging.py b/api/tests/unit/util/test_logging.py index 33f34b277a23..205b31860beb 100644 --- a/api/tests/unit/util/test_logging.py +++ b/api/tests/unit/util/test_logging.py @@ -1,8 +1,11 @@ import json import logging +import logging.config import os import pytest +from gunicorn.config import Config +from pytest_django.fixtures import SettingsWrapper from util.logging import JsonFormatter @@ -25,7 +28,7 @@ def test_json_formatter__outputs_expected( expected_tb_string = ( "Traceback (most recent call last):\n" f' File "{expected_module_path}",' - " line 34, in _log_traceback\n" + " line 37, in _log_traceback\n" " raise Exception()\nException" ) @@ -59,3 +62,16 @@ def _log_traceback() -> None: "exc_info": expected_tb_string, }, ] + + +def test_gunicorn_json_capable_logger__non_existent_setting__not_raises( + settings: SettingsWrapper, +) -> None: + # Given + del settings.LOG_FORMAT + config = Config() + + # When & Then + from util.logging import GunicornJsonCapableLogger + + GunicornJsonCapableLogger(config) diff --git a/api/util/logging.py b/api/util/logging.py index 27aa7117abf9..4f4764d44003 100644 --- a/api/util/logging.py +++ b/api/util/logging.py @@ -57,7 +57,7 @@ def get_json_record(self, record: logging.LogRecord) -> dict[str, Any]: class GunicornJsonCapableLogger(GunicornLogger): def setup(self, cfg: Config) -> None: super().setup(cfg) - if settings.LOG_FORMAT == "json": + if getattr(settings, "LOG_FORMAT", None) == "json": self._set_handler( self.error_log, cfg.errorlog,