mirror of
				https://github.com/zulip/zulip.git
				synced 2025-11-04 05:53:43 +00:00 
			
		
		
		
	Fixes #29944. Co-authored-by: theofficialvedantjoshi <vedant.messi101@gmail.com> Co-authored-by: Niloth P <20315308+Niloth-p@users.noreply.github.com>
		
			
				
	
	
		
			103 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			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,
 | 
						|
        )
 |