Postmark: Add metadata support

Closes #114
This commit is contained in:
medmunds
2018-08-11 16:00:58 -07:00
parent 0d389f1f93
commit 46ff2e859c
7 changed files with 21 additions and 10 deletions

View File

@@ -330,8 +330,9 @@ class PostmarkBackendAnymailFeatureTests(PostmarkBackendMockAPITestCase):
def test_metadata(self):
self.message.metadata = {'user_id': "12345", 'items': 6}
with self.assertRaisesMessage(AnymailUnsupportedFeature, 'metadata'):
self.message.send()
self.message.send()
data = self.get_api_call_json()
self.assertEqual(data['Metadata'], {'user_id': "12345", 'items': 6})
def test_send_at(self):
self.message.send_at = 1651820889 # 2022-05-06 07:08:09 UTC
@@ -403,6 +404,7 @@ class PostmarkBackendAnymailFeatureTests(PostmarkBackendMockAPITestCase):
"""
self.message.send()
data = self.get_api_call_json()
self.assertNotIn('Metadata', data)
self.assertNotIn('Tag', data)
self.assertNotIn('TemplateId', data)
self.assertNotIn('TemplateModel', data)

View File

@@ -51,7 +51,8 @@ class PostmarkBackendIntegrationTests(SimpleTestCase, AnymailTestMixin):
reply_to=["reply1@example.com", "Reply 2 <reply2@example.com>"],
headers={"X-Anymail-Test": "value"},
# no metadata, send_at, track_clicks support
# no send_at, track_clicks support
metadata={"meta1": "simple string", "meta2": 2},
tags=["tag 1"], # max one tag
track_opens=True,
track_clicks=True,

View File

@@ -66,6 +66,10 @@ class PostmarkDeliveryTestCase(WebhookTestCase):
"MessageID": "883953f4-6105-42a2-a16a-77a8eac79483",
"Recipient": "recipient@example.com",
"Tag": "welcome-email",
"Metadata": {
"cohort": "2014-08-A",
"userid": "12345", # Postmark metadata is always converted to string
},
"DeliveredAt": "2014-08-01T13:28:10.2735393-04:00",
"Details": "Test delivery webhook details"
}
@@ -83,7 +87,7 @@ class PostmarkDeliveryTestCase(WebhookTestCase):
self.assertEqual(event.message_id, "883953f4-6105-42a2-a16a-77a8eac79483")
self.assertEqual(event.recipient, "recipient@example.com")
self.assertEqual(event.tags, ["welcome-email"])
self.assertEqual(event.metadata, {})
self.assertEqual(event.metadata, {"cohort": "2014-08-A", "userid": "12345"})
def test_open_event(self):
raw_event = {