import json import logging import unittest from archive_clients.logging_config import RedactingJsonFormatter class LoggingTests(unittest.TestCase): def test_secret_is_redacted_from_message_and_fields(self): formatter = RedactingJsonFormatter(["shared-secret"]) record = logging.LogRecord( "test", logging.INFO, __file__, 1, "token=%s", ("shared-secret",), None, ) record.error_type = "shared-secret" rendered = formatter.format(record) self.assertNotIn("shared-secret", rendered) self.assertEqual(json.loads(rendered)["error_type"], "[REDACTED]") if __name__ == "__main__": unittest.main()