mirror of
https://github.com/zulip/zulip.git
synced 2025-10-23 16:14:02 +00:00
This commit create a directory to store the mock message for nagios and more will be added. The json files in this directory will be used to config the screenshot generating script for the documentations of non-webhook integrations.
58 lines
2.6 KiB
Python
58 lines
2.6 KiB
Python
from zerver.lib.integrations import (
|
|
DOC_SCREENSHOT_CONFIG,
|
|
INTEGRATIONS,
|
|
NO_SCREENSHOT_WEBHOOKS,
|
|
WEBHOOK_INTEGRATIONS,
|
|
BaseScreenshotConfig,
|
|
Integration,
|
|
ScreenshotConfig,
|
|
WebhookIntegration,
|
|
get_fixture_and_image_paths,
|
|
split_fixture_path,
|
|
)
|
|
from zerver.lib.test_classes import ZulipTestCase
|
|
|
|
|
|
class IntegrationsTestCase(ZulipTestCase):
|
|
def test_split_fixture_path(self) -> None:
|
|
path = "zerver/webhooks/semaphore/fixtures/push.json"
|
|
integration_name, fixture_name = split_fixture_path(path)
|
|
self.assertEqual(integration_name, "semaphore")
|
|
self.assertEqual(fixture_name, "push")
|
|
|
|
def test_get_fixture_and_image_paths(self) -> None:
|
|
integration = INTEGRATIONS["airbrake"]
|
|
assert isinstance(integration, WebhookIntegration)
|
|
screenshot_config = ScreenshotConfig("error_message.json", "002.png", "ci")
|
|
fixture_path, image_path = get_fixture_and_image_paths(integration, screenshot_config)
|
|
self.assertEqual(fixture_path, "zerver/webhooks/airbrake/fixtures/error_message.json")
|
|
self.assertEqual(image_path, "static/images/integrations/ci/002.png")
|
|
|
|
def test_get_fixture_and_image_paths_non_webhook(self) -> None:
|
|
integration = INTEGRATIONS["nagios"]
|
|
assert isinstance(integration, Integration)
|
|
screenshot_config = BaseScreenshotConfig("service_notify.json", "001.png")
|
|
fixture_path, image_path = get_fixture_and_image_paths(integration, screenshot_config)
|
|
self.assertEqual(fixture_path, "zerver/integration_fixtures/nagios/service_notify.json")
|
|
self.assertEqual(image_path, "static/images/integrations/nagios/001.png")
|
|
|
|
def test_get_bot_avatar_path(self) -> None:
|
|
integration = INTEGRATIONS["alertmanager"]
|
|
self.assertEqual(
|
|
integration.get_bot_avatar_path(), "images/integrations/bot_avatars/prometheus.png"
|
|
)
|
|
|
|
# New instance with logo parameter not set
|
|
integration = WebhookIntegration("alertmanager", ["misc"])
|
|
self.assertIsNone(integration.get_bot_avatar_path())
|
|
|
|
def test_no_missing_doc_screenshot_config(self) -> None:
|
|
webhook_names = {webhook.name for webhook in WEBHOOK_INTEGRATIONS}
|
|
webhooks_with_screenshot_config = set(DOC_SCREENSHOT_CONFIG.keys())
|
|
missing_webhooks = webhook_names - webhooks_with_screenshot_config - NO_SCREENSHOT_WEBHOOKS
|
|
message = (
|
|
f"These webhooks are missing screenshot config: {missing_webhooks}.\n"
|
|
"Add them to zerver.lib.integrations.DOC_SCREENSHOT_CONFIG"
|
|
)
|
|
self.assertFalse(missing_webhooks, message)
|