Skip to content

Commit 72b5b39

Browse files
DX-120403 Make stdlib JSON log test CI-stable
1 parent df28ae2 commit 72b5b39

1 file changed

Lines changed: 7 additions & 2 deletions

File tree

tests/test_log.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
import os
1818
import sys
19+
import io
1920
import json
2021
import pytest
2122
import logging
@@ -166,24 +167,28 @@ def test_configure_with_json_logging(self):
166167
def test_stdlib_logs_are_rendered_as_json(self, capsys):
167168
"""Stdlib loggers should share the same JSON formatter pipeline."""
168169
log.configure(enable_json_logging=True)
170+
stream = io.StringIO()
171+
logging.getLogger().handlers[0].setStream(stream)
169172

170173
logging.getLogger("uvicorn.access").info("Access log message")
171174

172-
record = json.loads(capsys.readouterr().err.strip())
175+
record = json.loads(stream.getvalue().strip())
173176
assert record["message"] == "Access log message"
174177
assert record["logger"] == "uvicorn.access"
175178
assert record["level"] == "info"
176179

177180
def test_exception_logs_use_json_stacktrace_field(self, capsys):
178181
"""Exception traces should be serialized into a structured stacktrace field."""
179182
log.configure(enable_json_logging=True)
183+
stream = io.StringIO()
184+
logging.getLogger().handlers[0].setStream(stream)
180185

181186
try:
182187
raise RuntimeError("boom")
183188
except RuntimeError:
184189
logging.getLogger("uvicorn.error").exception("Request crashed")
185190

186-
record = json.loads(capsys.readouterr().err.strip())
191+
record = json.loads(stream.getvalue().strip())
187192
assert record["message"] == "Request crashed"
188193
assert record["logger"] == "uvicorn.error"
189194
assert "stacktrace" in record

0 commit comments

Comments
 (0)