Files
zulip/zerver/webhooks/sonarr/tests.py
Prakhar Pratyush 3afc8ed7ae webhooks: Rename *topic local variables to *topic_name.
This is preparatory work towards adding a Topic model.
We plan to use the local variable name as 'topic' for
the Topic model objects.

Currently, we use *topic as the local variable name for
topic names.

We rename local variables of the form *topic to *topic_name
so that we don't need to think about type collisions in
individual code paths where we might want to talk about both
Topic objects and strings for the topic name.
2024-01-17 08:35:29 -08:00

90 lines
4.0 KiB
Python

from zerver.lib.test_classes import WebhookTestCase
class SonarrHookTests(WebhookTestCase):
STREAM_NAME = "sonarr"
URL_TEMPLATE = "/api/v1/external/sonarr?api_key={api_key}&stream={stream}"
WEBHOOK_DIR_NAME = "sonarr"
def test_sonarr_test(self) -> None:
"""
Tests if sonarr test payload is handled correctly
"""
expected_topic_name = "Sonarr - Test"
expected_message = "Sonarr webhook has been successfully configured."
self.check_webhook("sonarr_test", expected_topic_name, expected_message)
def test_sonarr_series_deleted(self) -> None:
"""
Tests if sonarr series deleted payload is handled correctly
"""
expected_topic_name = "Breaking Bad"
expected_message = "Breaking Bad has been deleted."
self.check_webhook("sonarr_series_deleted", expected_topic_name, expected_message)
def test_sonarr_health_check_warning(self) -> None:
"""
Tests if sonarr health check warning payload is handled correctly
"""
expected_topic_name = "Health warning"
expected_message = "Indexers unavailable due to failures for more than 6 hours: Academic Torrents - Jackett, ACG - Jackett, KickAssTorrent - Jackett, EXT Torrents - Jackett, Extra Torrents - Jackett, SkyTorrents - Jackett, iDope - Jackett."
self.check_webhook("sonarr_health_check_warning", expected_topic_name, expected_message)
def test_sonarr_health_check_error(self) -> None:
"""
Tests if sonarr health check error payload is handled correctly
"""
expected_topic_name = "Health error"
expected_message = "No indexers available with RSS sync enabled, Sonarr will not grab new releases automatically."
self.check_webhook("sonarr_health_check_error", expected_topic_name, expected_message)
def test_sonarr_episodes_renamed(self) -> None:
"""
Tests if sonarr episodes renamed payload is handled correctly
"""
expected_topic_name = "The L Word"
expected_message = "The L Word episodes have been renamed."
self.check_webhook("sonarr_episodes_renamed", expected_topic_name, expected_message)
def test_sonarr_episode_imported(self) -> None:
"""
Tests if sonarr episode imported payload is handled correctly
"""
expected_topic_name = "Grey's Anatomy"
expected_message = "Grey's Anatomy - 17x9 - In My Life has been imported."
self.check_webhook("sonarr_episode_imported", expected_topic_name, expected_message)
def test_sonarr_episode_imported_upgrade(self) -> None:
"""
Tests if sonarr episode imported upgrade payload is handled correctly
"""
expected_topic_name = "NCIS"
expected_message = "NCIS - 18x10 - Watchdog has been upgraded from SDTV to HDTV-720p."
self.check_webhook("sonarr_episode_imported_upgrade", expected_topic_name, expected_message)
def test_sonarr_episode_grabbed(self) -> None:
"""
Tests if sonarr episode grabbed payload is handled correctly
"""
expected_topic_name = "NCIS"
expected_message = "NCIS - 18x10 - Watchdog has been grabbed."
self.check_webhook("sonarr_episode_grabbed", expected_topic_name, expected_message)
def test_sonarr_episode_deleted(self) -> None:
"""
Tests if sonarr episode deleted payload is handled correctly
"""
expected_topic_name = "Breaking Bad"
expected_message = "Breaking Bad - 1x1 - Pilot has been deleted."
self.check_webhook("sonarr_episode_deleted", expected_topic_name, expected_message)
def test_sonarr_episode_deleted_upgrade(self) -> None:
"""
Tests if sonarr episode deleted upgrade payload is handled correctly
"""
expected_topic_name = "S.W.A.T. (2017)"
expected_message = (
"S.W.A.T. (2017) - 4x10 - Buried has been deleted due to quality upgrade."
)
self.check_webhook("sonarr_episode_deleted_upgrade", expected_topic_name, expected_message)