Skip to content

Commit e661784

Browse files
meehandpatchback[bot]
authored andcommitted
Added regression test for cached logging status (#11795)
(cherry picked from commit d097058)
1 parent 149dfa7 commit e661784

File tree

2 files changed

+43
-0
lines changed

2 files changed

+43
-0
lines changed

CHANGES/11778.misc.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Added regression test for cached logging status -- by :user:`meehand`.

tests/test_web_log.py

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -281,3 +281,45 @@ def log(
281281
resp = await client.get("/")
282282
assert 200 == resp.status
283283
assert "This should not be logged" not in caplog.text
284+
285+
286+
async def test_logger_does_not_log_when_enabled_post_init(
287+
aiohttp_server: AiohttpServer,
288+
aiohttp_client: AiohttpClient,
289+
caplog: pytest.LogCaptureFixture,
290+
) -> None:
291+
"""Test logger does nothing when not enabled even if enabled post init."""
292+
293+
async def handler(request: web.Request) -> web.Response:
294+
return web.Response()
295+
296+
enabled = False
297+
298+
class Logger(AbstractAccessLogger):
299+
300+
def log(
301+
self, request: web.BaseRequest, response: web.StreamResponse, time: float
302+
) -> None:
303+
self.logger.critical("This should not be logged") # pragma: no cover
304+
305+
@property
306+
def enabled(self) -> bool:
307+
"""Check if logger is enabled."""
308+
# Avoid formatting the log line if it will not be emitted.
309+
return enabled
310+
311+
app = web.Application()
312+
app.router.add_get("/", handler)
313+
server = await aiohttp_server(app, access_log_class=Logger)
314+
client = await aiohttp_client(server)
315+
resp = await client.get("/")
316+
assert 200 == resp.status
317+
assert "This should not be logged" not in caplog.text
318+
assert not server.handler.connections[0]._force_close
319+
320+
# mock enabling logging post-init
321+
enabled = True
322+
resp = await client.get("/")
323+
assert 200 == resp.status
324+
assert "This should not be logged" not in caplog.text
325+
assert not server.handler.connections[0]._force_close

0 commit comments

Comments
 (0)