diff --git a/collector/tests.py b/collector/tests.py index 8ca27e8..c6c2880 100644 --- a/collector/tests.py +++ b/collector/tests.py @@ -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 + ) + ) diff --git a/pyproject.toml b/pyproject.toml index c60b9ff..9c87656 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -23,7 +23,6 @@ addopts = [ "--no-migrations", "--capture=sys", ] -logot_capturer = "logot.structlog.StructlogCapturer" [build-system] requires = ["pdm-backend"] diff --git a/requirements/prod.txt b/requirements/prod.txt index 493a11f..84c4010 100644 --- a/requirements/prod.txt +++ b/requirements/prod.txt @@ -1,4 +1,4 @@ -# SHA1:48c3af154036b224a6b21f175ea0a949febaf6f5 +# SHA1:d8e7f5aef64e2e1e161d339a9c1c53d42cdd0981 # # This file is autogenerated by pip-compile-multi # To update, run: diff --git a/requirements/test.in b/requirements/test.in index f1e3b52..2c801fa 100644 --- a/requirements/test.in +++ b/requirements/test.in @@ -3,4 +3,3 @@ hypothesis[django] pytest pytest-django -logot[pytest,structlog] diff --git a/requirements/test.txt b/requirements/test.txt index 7aa87fa..a038000 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -1,4 +1,4 @@ -# SHA1:40e4b481355fc16525f8944d39904264b6e382a6 +# SHA1:9bf147356ad56dbe073ef0973141bdfb94631c9b # # This file is autogenerated by pip-compile-multi # To update, run: @@ -7,9 +7,8 @@ # -r prod.txt attrs==25.3.0 -hypothesis==6.129.2 +hypothesis==6.129.3 iniconfig==2.0.0 -logot==1.3.0 packaging==24.2 pluggy==1.5.0 pytest==8.3.5