From c4085d1b8ad03abc5624e554fb80503a946140f1 Mon Sep 17 00:00:00 2001 From: Alex Vandiver Date: Thu, 5 Oct 2023 22:17:52 +0000 Subject: [PATCH] statuspage: Raise AnomalousWebhookPayloadError on other events. Their documentation only describes these two event types. --- zerver/webhooks/statuspage/tests.py | 10 ++++++++++ zerver/webhooks/statuspage/view.py | 4 ++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/zerver/webhooks/statuspage/tests.py b/zerver/webhooks/statuspage/tests.py index 23354c7627..550a4dfd8d 100644 --- a/zerver/webhooks/statuspage/tests.py +++ b/zerver/webhooks/statuspage/tests.py @@ -43,3 +43,13 @@ class StatuspageHookTests(WebhookTestCase): expected_message, content_type="application/x-www-form-urlencoded", ) + + def test_statuspage_anomalous_payload(self) -> None: + result = self.client_post( + self.url, + {}, + content_type="application/json", + ) + self.assert_json_error( + result, "Unable to parse request: Did Statuspage generate this event?", 400 + ) diff --git a/zerver/webhooks/statuspage/view.py b/zerver/webhooks/statuspage/view.py index 617265e836..2e12f23659 100644 --- a/zerver/webhooks/statuspage/view.py +++ b/zerver/webhooks/statuspage/view.py @@ -2,7 +2,7 @@ from django.http import HttpRequest, HttpResponse from zerver.decorator import webhook_view -from zerver.lib.exceptions import UnsupportedWebhookEventTypeError +from zerver.lib.exceptions import AnomalousWebhookPayloadError from zerver.lib.response import json_success from zerver.lib.typed_endpoint import JsonBodyPayload, typed_endpoint from zerver.lib.validator import WildValue, check_string @@ -69,7 +69,7 @@ def api_statuspage_webhook( topic = get_component_topic(payload) body = get_components_update_body(payload) else: - raise UnsupportedWebhookEventTypeError("unknown-event") + raise AnomalousWebhookPayloadError check_send_webhook_message(request, user_profile, topic, body, event) return json_success(request)