Files
zulip/zerver/webhooks/zapier/tests.py
PIG208 5ecbfecd77 webhook: Rename FIXTURE_DIR_NAME to WEBHOOK_DIR_NAME.
Since FIXTURE_DIR_NAME is the name of the folder that contains the view
and tests modules of the webhook and another folder called "fixtures" that
store the fixtures, it is more appropriate to call it WEBHOOK_DIR_NAME,
especially when we want to refer to the view module using this variable.
2021-06-29 17:01:54 -07:00

39 lines
1.7 KiB
Python

from zerver.lib.test_classes import WebhookTestCase
class ZapierHookTests(WebhookTestCase):
STREAM_NAME = "zapier"
URL_TEMPLATE = "/api/v1/external/zapier?stream={stream}&api_key={api_key}"
WEBHOOK_DIR_NAME = "zapier"
def test_zapier_when_subject_and_body_are_correct(self) -> None:
expected_topic = "New email from zulip@zulip.com"
expected_message = "Your email content is: \nMy Email content."
self.check_webhook("correct_subject_and_body", expected_topic, expected_message)
def test_zapier_when_topic_and_body_are_correct(self) -> None:
expected_topic = "New email from zulip@zulip.com"
expected_message = "Your email content is: \nMy Email content."
self.check_webhook("correct_topic_and_body", expected_topic, expected_message)
def test_zapier_weather_update(self) -> None:
expected_topic = "Here is your weather update for the day:"
expected_message = (
"Foggy in the morning.\nMaximum temperature to be 24.\nMinimum temperature to be 12"
)
self.check_webhook("weather_update", expected_topic, expected_message)
class ZapierZulipAppTests(WebhookTestCase):
STREAM_NAME = "zapier"
URL_TEMPLATE = "/api/v1/external/zapier?api_key={api_key}&stream={stream}"
WEBHOOK_DIR_NAME = "zapier"
def test_auth(self) -> None:
payload = self.get_body("zapier_zulip_app_auth")
result = self.client_post(self.url, payload, content_type="application/json")
json_result = self.assert_json_success(result)
self.assertEqual(json_result["full_name"], "Zulip Webhook Bot")
self.assertEqual(json_result["email"], "webhook-bot@zulip.com")
self.assertIn("id", json_result)