[tests,dependencies] capture logs with help from structlog and forget about logot
Closes #3
This commit is contained in:
parent
6de8b07d1b
commit
bcf6dff1b0
5 changed files with 34 additions and 16 deletions
|
|
@ -1,9 +1,11 @@
|
|||
from typing import Callable
|
||||
|
||||
import pytest
|
||||
from django.test import Client
|
||||
from django.urls import reverse
|
||||
from hypothesis import given, strategies as st
|
||||
from logot import Logot, logged
|
||||
from hypothesis import given
|
||||
from hypothesis import strategies as st
|
||||
from structlog.testing import capture_logs
|
||||
|
||||
from .models import Teil
|
||||
|
||||
|
|
@ -56,16 +58,35 @@ def test_enter_endpoint_accepts_only_post_requests(
|
|||
assert response.status_code == expected_status
|
||||
|
||||
|
||||
@pytest.mark.xfail(reason="WIP, kein Plan warum nichts gecaptured zu werden scheint")
|
||||
def test_enter_endpoints_emits_expected_logs(
|
||||
client: Client, logot: Logot, random_name: Callable[[int], str]
|
||||
client: Client, random_name: Callable[[int], str]
|
||||
):
|
||||
"""
|
||||
note: capture_logs() yields a list of dicts, not a list of logfmt lines
|
||||
that we configured for the app
|
||||
"""
|
||||
same_name = random_name(10)
|
||||
|
||||
response = client.post(reverse("collector:enter"), data={"new_name": same_name})
|
||||
assert response.status_code == 302
|
||||
logot.assert_logged(logged.info("New Teil entered"))
|
||||
with capture_logs() as logs:
|
||||
response = client.post(reverse("collector:enter"), data={"new_name": same_name})
|
||||
assert response.status_code == 302
|
||||
assert any(
|
||||
(
|
||||
le["event"].lower() == "New Teil entered".lower()
|
||||
and le["log_level"].lower() == "info"
|
||||
and "teil_id" in le
|
||||
for le in logs
|
||||
)
|
||||
)
|
||||
|
||||
response = client.post(reverse("collector:enter"), data={"new_name": same_name})
|
||||
assert response.status_code == 302
|
||||
logot.assert_logged(logged.warning("Teil already existed"))
|
||||
with capture_logs() as logs:
|
||||
response = client.post(reverse("collector:enter"), data={"new_name": same_name})
|
||||
assert response.status_code == 302
|
||||
assert any(
|
||||
(
|
||||
le["event"].lower() == "Teil already existed".lower()
|
||||
and le["log_level"].lower() == "warning"
|
||||
and "teil_id" not in le
|
||||
for le in logs
|
||||
)
|
||||
)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue