Files
notifications-admin/tests/notifications_utils/test_logging.py
Carlo Costino 57e9fc9ba1 Localize notification_utils to the Admin!
This changeset copies everything in notifications_utils to turn into a local project module.  It includes dependency changes to account for this adjustment and the notifications_utils tests.  It also fixes all of the import statements.

Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2024-04-05 12:51:31 -04:00

52 lines
1.4 KiB
Python

import json
import logging as builtin_logging
from notifications_utils import logging
def test_get_handlers_sets_up_logging_appropriately_with_debug():
class App:
config = {"NOTIFY_APP_NAME": "bar", "NOTIFY_LOG_LEVEL": "ERROR"}
debug = True
app = App()
handlers = logging.get_handlers(app)
assert len(handlers) == 1
assert isinstance(handlers[0], builtin_logging.StreamHandler)
assert isinstance(handlers[0].formatter, builtin_logging.Formatter)
def test_get_handlers_sets_up_logging_appropriately_without_debug():
class App:
config = {"NOTIFY_APP_NAME": "bar", "NOTIFY_LOG_LEVEL": "ERROR"}
debug = False
app = App()
handlers = logging.get_handlers(app)
assert len(handlers) == 1
assert isinstance(handlers[0], builtin_logging.StreamHandler)
assert isinstance(handlers[0].formatter, logging.JSONFormatter)
def test_base_json_formatter_contains_service_id():
record = builtin_logging.LogRecord(
name="log thing",
level="info",
pathname="path",
lineno=123,
msg="message to log",
exc_info=None,
args=None,
)
service_id_filter = logging.ServiceIdFilter()
assert (
json.loads(logging.BaseJSONFormatter().format(record))["message"]
== "message to log"
)
assert service_id_filter.filter(record).service_id == "no-service-id"