Projet

Général

Profil

0001-tests_multitenant-mock-journald-sender-41250.patch

Benjamin Dauvergne, 13 avril 2020 11:47

Télécharger (2,64 ko)

Voir les différences:

Subject: [PATCH] tests_multitenant: mock journald sender (#41250)

 .../test_request_context_filter.py            | 28 ++++++++++---------
 1 file changed, 15 insertions(+), 13 deletions(-)
tests_multitenant/test_request_context_filter.py
8 8

  
9 9
from django.contrib.auth.models import User
10 10

  
11
from hobo.journal import JournalHandler
12

  
13
from systemd.test.test_journal import MockSender
14

  
11 15

  
12 16
def test_request_context_filter(caplog, settings, tenants, client):
13 17
    root_logger = logging.getLogger()
......
43 47

  
44 48

  
45 49
@pytest.fixture
46
def journald_handler():
47
    from hobo.journal import JournalHandler
50
def sender():
51
    yield MockSender()
52

  
48 53

  
54
@pytest.fixture
55
def journald_handler(sender):
49 56
    root_logger = logging.getLogger()
50
    journald_handler = JournalHandler()
57
    journald_handler = JournalHandler(sender_function=sender.send)
58
    journald_handler.addFilter(RequestContextFilter())
51 59
    root_logger.handlers.append(journald_handler)
52 60
    try:
53 61
        yield journald_handler
......
55 63
        root_logger.handlers.remove(journald_handler)
56 64

  
57 65

  
58
def test_systemd(settings, tenants, client, journald_handler):
66
def test_systemd(settings, tenants, client, journald_handler, sender):
59 67
    root_logger = logging.getLogger()
60 68
    assert len(root_logger.handlers) == 2
61
    journald_handler.addFilter(RequestContextFilter())
62 69

  
63 70
    for tenant in tenants:
64 71
        with tenant_context(tenant):
......
75 82
        client.get('/', SERVER_NAME=tenant.domain_url,
76 83
                   HTTP_X_FORWARDED_FOR='99.99.99.99, 127.0.0.1')
77 84

  
78
    from systemd.journal import Reader
79
    import time
80

  
81
    reader = Reader()
82
    reader.seek_realtime(time.time() - 10)
83
    records = [l for l in reader if l['MESSAGE'] == 'wat!']
84
    assert len(records) == 2
85
    for tenant, record in zip(tenants, records):
85
    assert len(sender.buf) == 2
86
    for tenant, args in zip(tenants, sender.buf):
87
        record = dict(arg.split('=', 1) for arg in args)
86 88
        assert record['IP'] == '99.99.99.99'
87 89
        assert record['TENANT'] == tenant.domain_url
88 90
        assert record['PATH'] == '/'
89
-