From 632c5cba01285795f510430adab24eeeb30aafc3 Mon Sep 17 00:00:00 2001 From: "google-labs-jules[bot]" <161369871+google-labs-jules[bot]@users.noreply.github.com> Date: Wed, 7 Oct 2026 03:54:25 +0000 Subject: [PATCH] test: add missing keys coverage for alerting payload builder Adds `test_build_payload_missing_keys_serializable` to verify that `build_payload` correctly handles scenarios where input dictionaries lack expected keys. Tests that `dict.get()` fallbacks safely map to `None` and empty lists without causing tracebacks or JSON serialization issues. Co-authored-by: Horizontal42 <75383519+Horizontal42@users.noreply.github.com> --- tests/test_alerting.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/tests/test_alerting.py b/tests/test_alerting.py index d689d7c..6297b7e 100644 --- a/tests/test_alerting.py +++ b/tests/test_alerting.py @@ -55,6 +55,19 @@ def test_build_payload_shape_and_json_serializable(): dump_json(payload) # must not raise +def test_build_payload_missing_keys_serializable(): + payload = build_payload({}, {}, None, "ok") + assert payload["tool"] == "netsleuth" + assert payload["asn"] is None + assert payload["at"] is None + assert payload["previous"] is None + assert payload["current"] == "ok" + assert payload["score"] is None + assert payload["findings"] == [] + assert payload["host"] is None + dump_json(payload) # must not raise + + async def test_post_webhook_returns_true_on_success(httpx_mock): httpx_mock.add_response(url="https://example.com/hook", status_code=200) async with httpx.AsyncClient() as client: