From ef5ad080e28ffd0956d714cb8934f0aecfedaa9f Mon Sep 17 00:00:00 2001 From: Mohit Gupta Date: Sun, 19 Jul 2020 17:23:05 +0530 Subject: [PATCH] tests: Verify logging on error in check_send_webhook_fixture_message. This commit tests if error logs are logged when an error occurs during testing of check_send_webhook_fixture_message using assertlogs. Using assertlogs ensure logs are not printed as spam in test output. --- zerver/tests/test_integrations_dev_panel.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/zerver/tests/test_integrations_dev_panel.py b/zerver/tests/test_integrations_dev_panel.py index 7c7af870fa..4ff2b73f2b 100644 --- a/zerver/tests/test_integrations_dev_panel.py +++ b/zerver/tests/test_integrations_dev_panel.py @@ -22,12 +22,18 @@ class TestIntegrationsDevPanel(ZulipTestCase): "custom_headers": "{}", "is_json": "true", } + with self.assertLogs(level="ERROR") as logs: + response = self.client_post(target_url, data) - response = self.client_post(target_url, data) + self.assertEqual(response.status_code, 500) # Since the response would be forwarded. + expected_response = {"result": "error", "msg": "Internal server error"} + self.assertEqual(ujson.loads(response.content), expected_response) - self.assertEqual(response.status_code, 500) # Since the response would be forwarded. - expected_response = {"result": "error", "msg": "Internal server error"} - self.assertEqual(ujson.loads(response.content), expected_response) + # Intention of this test looks like to trigger keyError + # so just testing KeyError is printed along wth Traceback in logs + self.assertTrue("KeyError" in logs.output[0]) + self.assertTrue("Traceback (most recent call last)" in logs.output[0]) + self.assertEqual(logs.output[1], "ERROR:django.request:Internal Server Error: /api/v1/external/airbrake") def test_check_send_webhook_fixture_message_for_success_without_headers(self) -> None: bot = get_user('webhook-bot@zulip.com', self.zulip_realm)