tests: insert log filter on correct handler (#45615)

This commit is contained in:
Nicolas Roche 2020-07-31 11:47:46 +02:00
parent 754d207de0
commit 7ce95390ac
1 changed files with 11 additions and 7 deletions

View File

@ -1,4 +1,5 @@
import pytest
from _pytest.logging import LogCaptureHandler
import logging
@ -21,8 +22,13 @@ class MockSender:
def test_request_context_filter(caplog, settings, tenants, client):
root_logger = logging.getLogger()
assert len(root_logger.handlers) == 1
root_logger.handlers[0].addFilter(RequestContextFilter())
for handler in root_logger.handlers:
if handler.__class__ == LogCaptureHandler:
handler.addFilter(RequestContextFilter())
break
else:
assert False, 'No LogCaptureHandler found'
for tenant in tenants:
with tenant_context(tenant):
user = User.objects.create(first_name='John', last_name='Doe', username='john.doe',
@ -62,17 +68,15 @@ def journald_handler(sender):
root_logger = logging.getLogger()
journald_handler = JournalHandler(sender_function=sender.send)
journald_handler.addFilter(RequestContextFilter())
root_logger.handlers.append(journald_handler)
root_logger.handlers.insert(0, journald_handler) # head insert
try:
yield journald_handler
finally:
root_logger.handlers.remove(journald_handler)
root_logger.handlers.pop(0)
def test_systemd(settings, tenants, client, journald_handler, sender):
root_logger = logging.getLogger()
assert len(root_logger.handlers) == 2
for tenant in tenants:
with tenant_context(tenant):
user = User.objects.create(first_name='John', last_name='Doe', username='john.doe',