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)