Files
zulip/zerver/webhooks/openproject/tests.py
nirved.mishra.eee23@itbhu.ac.in 3fc63110ac incoming-webhooks: Add OpenProject integration.
Fixes #29944.

Co-authored-by: theofficialvedantjoshi <vedant.messi101@gmail.com>
Co-authored-by: Niloth P <20315308+Niloth-p@users.noreply.github.com>
2025-05-05 12:23:04 -07:00

103 lines
3.4 KiB
Python

from zerver.lib.test_classes import WebhookTestCase
class OpenProjectHookTests(WebhookTestCase):
CHANNEL_NAME = "OpenProjectUpdates"
URL_TEMPLATE = "/api/v1/external/openproject?api_key={api_key}&stream={stream}"
WEBHOOK_DIR_NAME = "openproject"
STREAM_NAME = "OpenProjectUpdates"
def test_project_with_parent_created(self) -> None:
expected_topic = "AI Backend"
expected_message = (
"Project **AI Backend** was created as a sub-project of **Demo project**."
)
self.check_webhook(
"project_created__with_parent",
expected_topic,
expected_message,
)
def test_project_without_parent_created(self) -> None:
expected_topic = "AI Backend"
expected_message = "Project **AI Backend** was created."
self.check_webhook(
"project_created__without_parent",
expected_topic,
expected_message,
)
def test_project_updated(self) -> None:
expected_topic = "AI Backend"
expected_message = "Project **AI Backend** was updated."
self.check_webhook(
"project_updated",
expected_topic,
expected_message,
)
def test_work_package_created(self) -> None:
expected_topic = "Demo project"
expected_message = "**Task1** (work package **Task**) was created by **Nirved Mishra**."
self.check_webhook(
"work_package_created",
expected_topic,
expected_message,
)
def test_work_package_updated(self) -> None:
expected_topic = "Demo project"
expected_message = "**Task1** (work package **Task**) was updated by **Nirved Mishra**."
self.check_webhook(
"work_package_updated",
expected_topic,
expected_message,
)
def test_time_entry_with_workpackage_created(self) -> None:
expected_topic = "Project1"
expected_message = "**Nirved Mishra** logged **1 hour** on **kl**."
self.check_webhook(
"time_entry_created__with_workpackage",
expected_topic,
expected_message,
)
def test_time_entry_without_workpackage_created(self) -> None:
expected_topic = "Project1"
expected_message = "**Nirved Mishra** logged **1 hour** on **Project1**."
self.check_webhook(
"time_entry_created__without_workpackage",
expected_topic,
expected_message,
)
def test_time_entry_with_iso_hm(self) -> None:
expected_topic = "Project1"
expected_message = "**Nirved Mishra** logged **7 hours and 42 minutes** on **kl**."
self.check_webhook(
"time_entry_created__with_iso_hm",
expected_topic,
expected_message,
)
def test_time_entry_with_invalid_iso(self) -> None:
expected_topic = "Project1"
expected_message = "**Nirved Mishra** logged a time entry on **kl**."
self.check_webhook(
"time_entry_created__with_invalid_iso",
expected_topic,
expected_message,
)
def test_attachment_created(self) -> None:
expected_topic = "Project 2"
expected_message = "**Nirved Mishra** uploaded **a.out** in **task2**."
self.check_webhook(
"attachment_created",
expected_topic,
expected_message,
)