2024-05-16 10:17:45 -04:00
|
|
|
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"
|
|
|
|
|
)
|
2024-05-17 17:23:32 -04:00
|
|
|
assert service_id_filter.filter(record).service_id == "notify-admin"
|
2024-06-11 10:34:57 -07:00
|
|
|
|
|
|
|
|
|
2024-06-11 12:17:14 -07:00
|
|
|
def test_pii_filter():
|
2024-06-11 10:34:57 -07:00
|
|
|
record = builtin_logging.LogRecord(
|
|
|
|
|
name="log thing",
|
|
|
|
|
level="info",
|
|
|
|
|
pathname="path",
|
|
|
|
|
lineno=123,
|
|
|
|
|
msg="phone1: 1555555555, phone2: 1555555554, email1: fake@fake.gov, email2: fake@fake2.fake.gov",
|
|
|
|
|
exc_info=None,
|
|
|
|
|
args=None,
|
|
|
|
|
)
|
2024-06-11 12:17:14 -07:00
|
|
|
pii_filter = logging.PIIFilter()
|
2024-06-17 11:12:30 -07:00
|
|
|
clean_msg = "phone1: 1XXXXXXXXXX, phone2: 1XXXXXXXXXX, email1: XXXXX@XXXXXXX, email2: XXXXX@XXXXXXX"
|
2024-06-11 12:29:49 -07:00
|
|
|
assert pii_filter.filter(record).msg == clean_msg
|