Skip to content

Commit 6f5ba81

Browse files
committed
Add unit test that covers StreamHandler
1 parent 1bad7d3 commit 6f5ba81

File tree

1 file changed

+25
-1
lines changed

1 file changed

+25
-1
lines changed

tests/core/test_logging.py

+25-1
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,18 @@
1+
import io
12
import json
23
import logging
34
import unittest
45
from unittest import mock
56

7+
from dockerflow.logging import request_id_context
68
from pyramid import testing
79

8-
from kinto.core import DEFAULT_SETTINGS, JsonLogFormatter, initialization
10+
from kinto.core import (
11+
DEFAULT_SETTINGS,
12+
JsonLogFormatter,
13+
StreamHandlerWithRequestID,
14+
initialization,
15+
)
916

1017
from .support import BaseWebTest
1118

@@ -162,3 +169,20 @@ def test_logger_name(self):
162169
self.assertEqual(logged["Type"], "app.log")
163170
# See https://github.com/mozilla/mozilla-cloud-services-logger/issues/2
164171
self.assertEqual(logged["Fields"]["msg"], "coucou")
172+
173+
174+
class RequestIdFilter(BaseWebTest, unittest.TestCase):
175+
def test_stream_logs_rid_field(self):
176+
log_buffer = io.StringIO() # In-memory log capture
177+
stream_handler = StreamHandlerWithRequestID(log_buffer)
178+
stream_handler.setFormatter(JsonLogFormatter())
179+
logger = logging.getLogger(__name__)
180+
logger.addHandler(stream_handler)
181+
182+
request_id_context.set("abc") # As done in `kinto.core.initalization`.
183+
logger.error("Some message")
184+
185+
captured = log_buffer.getvalue()
186+
187+
logged = json.loads(captured)
188+
self.assertEqual(logged["Fields"]["rid"], "abc")

0 commit comments

Comments
 (0)