From f86e445fe69fa7f2ad7264095de1226661e1dc34 Mon Sep 17 00:00:00 2001 From: Eeshan Garg Date: Wed, 17 Apr 2019 18:39:05 -0230 Subject: [PATCH] webhooks/sentry: Improve message formatting and punctuation. --- zerver/webhooks/sentry/tests.py | 9 ++++++++- zerver/webhooks/sentry/view.py | 17 ++++++++++++++--- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/zerver/webhooks/sentry/tests.py b/zerver/webhooks/sentry/tests.py index fd9a5092f7..3d6db7c37d 100644 --- a/zerver/webhooks/sentry/tests.py +++ b/zerver/webhooks/sentry/tests.py @@ -8,7 +8,14 @@ class SentryHookTests(WebhookTestCase): def test_error_issue_message(self) -> None: expected_topic = u"zulip" - expected_message = u"New ERROR [issue](https://sentry.io/zulip/zulip/issues/156699934/): This is an example python exception." + expected_message = """ +New [issue](https://sentry.io/zulip/zulip/issues/156699934/) (level: ERROR): + +``` quote +This is an example python exception +``` +""".strip() + self.send_and_test_stream_message( 'exception_message', expected_topic, diff --git a/zerver/webhooks/sentry/view.py b/zerver/webhooks/sentry/view.py index 0db14b4012..bff2129c96 100644 --- a/zerver/webhooks/sentry/view.py +++ b/zerver/webhooks/sentry/view.py @@ -9,13 +9,24 @@ from zerver.lib.response import json_success from zerver.lib.webhooks.common import check_send_webhook_message from zerver.models import UserProfile +MESSAGE_TEMPLATE = """ +New [issue]({url}) (level: {level}): + +``` quote +{message} +``` +""".strip() + @api_key_only_webhook_view('Sentry') @has_request_variables def api_sentry_webhook(request: HttpRequest, user_profile: UserProfile, payload: Dict[str, Any] = REQ(argument_type='body')) -> HttpResponse: subject = "{}".format(payload.get('project_name')) - body = "New {} [issue]({}): {}.".format(payload['level'].upper(), - payload.get('url'), - payload.get('message')) + body = MESSAGE_TEMPLATE.format( + level=payload['level'].upper(), + url=payload.get('url'), + message=payload.get('message') + ) + check_send_webhook_message(request, user_profile, subject, body) return json_success()