mirror of
https://github.com/pacnpal/django-anymail.git
synced 2025-12-20 03:41:05 -05:00
Support Postmark delivery event webhook.
Add support for Postmark's recently-released [delivery tracking webhook] to Anymail's normailized status event handling. The existing Anymail tracking webhook URL can be copied to "Delivery webhook" in your Postmark outbound server settings. Closes #45.
This commit is contained in:
@@ -55,6 +55,30 @@ class PostmarkDeliveryTestCase(WebhookTestCase):
|
||||
self.assertEqual(event.mta_response,
|
||||
"smtp;550 5.1.1 The email account that you tried to reach does not exist.")
|
||||
|
||||
def test_delivered_event(self):
|
||||
raw_event = {
|
||||
"ServerId": 23,
|
||||
"MessageID": "883953f4-6105-42a2-a16a-77a8eac79483",
|
||||
"Recipient": "recipient@example.com",
|
||||
"Tag": "welcome-email",
|
||||
"DeliveredAt": "2014-08-01T13:28:10.2735393-04:00",
|
||||
"Details": "Test delivery webhook details"
|
||||
}
|
||||
response = self.client.post('/anymail/postmark/tracking/',
|
||||
content_type='application/json', data=json.dumps(raw_event))
|
||||
self.assertEqual(response.status_code, 200)
|
||||
kwargs = self.assert_handler_called_once_with(self.tracking_handler, sender=PostmarkTrackingWebhookView,
|
||||
event=ANY, esp_name='Postmark')
|
||||
event = kwargs['event']
|
||||
self.assertIsInstance(event, AnymailTrackingEvent)
|
||||
self.assertEqual(event.event_type, "delivered")
|
||||
self.assertEqual(event.esp_event, raw_event)
|
||||
self.assertEqual(event.timestamp, datetime(2014, 8, 1, 13, 28, 10, microsecond=273539,
|
||||
tzinfo=get_fixed_timezone(-4*60)))
|
||||
self.assertEqual(event.message_id, "883953f4-6105-42a2-a16a-77a8eac79483")
|
||||
self.assertEqual(event.recipient, "recipient@example.com")
|
||||
self.assertEqual(event.tags, ["welcome-email"])
|
||||
|
||||
def test_open_event(self):
|
||||
raw_event = {
|
||||
"FirstOpen": True,
|
||||
|
||||
Reference in New Issue
Block a user