26 lines
895 B
Python
26 lines
895 B
Python
import json
|
|
import logging
|
|
import unittest
|
|
|
|
from backend.app.logging_config import JsonLogFormatter, RequestContextFilter, bind_request_id, reset_request_id
|
|
|
|
|
|
class JsonLoggingTests(unittest.TestCase):
|
|
def test_json_formatter_includes_request_context(self) -> None:
|
|
token = bind_request_id("request-123")
|
|
try:
|
|
record = logging.LogRecord("magent.test", logging.INFO, __file__, 1, "hello %s", ("world",), None)
|
|
RequestContextFilter().filter(record)
|
|
payload = json.loads(JsonLogFormatter().format(record))
|
|
finally:
|
|
reset_request_id(token)
|
|
|
|
self.assertEqual(payload["level"], "INFO")
|
|
self.assertEqual(payload["logger"], "magent.test")
|
|
self.assertEqual(payload["request_id"], "request-123")
|
|
self.assertEqual(payload["message"], "hello world")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|