mirror of
				https://github.com/zulip/zulip.git
				synced 2025-11-04 14:03:30 +00:00 
			
		
		
		
	Almost all webhook tests use this helper, except a few webhooks that write to private streams. Being concise is important here, and the name `self.send_and_test_stream_message` always confused me, since it sounds you're sending a stream message, and it leaves out the webhook piece. We should consider renaming `send_and_test_private_message` to something like `check_webhook_private`, but I couldn't decide on a great name, and it's very rarely used. So for now I just made sure the docstrings of the two sibling functions reference each other.
		
			
				
	
	
		
			33 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			33 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
from zerver.lib.test_classes import WebhookTestCase
 | 
						|
 | 
						|
 | 
						|
class HomeAssistantHookTests(WebhookTestCase):
 | 
						|
    STREAM_NAME = 'homeassistant'
 | 
						|
    URL_TEMPLATE = "/api/v1/external/homeassistant?&api_key={api_key}&stream={stream}"
 | 
						|
    FIXTURE_DIR_NAME = 'homeassistant'
 | 
						|
 | 
						|
    def test_simplereq(self) -> None:
 | 
						|
        expected_topic = "homeassistant"
 | 
						|
        expected_message = "The sun will be shining today!"
 | 
						|
 | 
						|
        self.check_webhook(
 | 
						|
            "simplereq",
 | 
						|
            expected_topic,
 | 
						|
            expected_message,
 | 
						|
            content_type="application/x-www-form-urlencoded",
 | 
						|
        )
 | 
						|
 | 
						|
    def test_req_with_title(self) -> None:
 | 
						|
        expected_topic = "Weather forecast"
 | 
						|
        expected_message = "It will be 30 degrees Celsius out there today!"
 | 
						|
 | 
						|
        self.check_webhook(
 | 
						|
            "reqwithtitle",
 | 
						|
            expected_topic,
 | 
						|
            expected_message,
 | 
						|
            content_type="application/x-www-form-urlencoded",
 | 
						|
        )
 | 
						|
 | 
						|
    def get_body(self, fixture_name: str) -> str:
 | 
						|
        return self.webhook_fixture_data("homeassistant", fixture_name, file_type="json")
 |