from zerver.lib.test_classes import WebhookTestCase class GocdHookTests(WebhookTestCase): STREAM_NAME = "gocd" URL_TEMPLATE = "/api/v1/external/gocd?stream={stream}&api_key={api_key}" WEBHOOK_DIR_NAME = "gocd" TOPIC = "https://github.com/gocd/gocd" def test_gocd_message(self) -> None: expected_message = ( "Author: Balaji B \n" "Build status: Passed :thumbs_up:\n" "Details: [build log](https://ci.example.com" "/go/tab/pipeline/history/pipelineName)\n" "Comment: my hola mundo changes" ) self.check_webhook( "pipeline", self.TOPIC, expected_message, content_type="application/x-www-form-urlencoded", ) def test_failed_message(self) -> None: expected_message = ( "Author: User Name \n" "Build status: Failed :thumbs_down:\n" "Details: [build log](https://ci.example.com" "/go/tab/pipeline/history/pipelineName)\n" "Comment: my hola mundo changes" ) self.check_webhook( "pipeline_failed", self.TOPIC, expected_message, content_type="application/x-www-form-urlencoded", )