|
1 | 1 | import json
|
2 | 2 | from datetime import datetime
|
3 | 3 |
|
4 |
| -from django.utils.timezone import get_fixed_timezone |
| 4 | +from django.utils.timezone import get_fixed_timezone, utc |
5 | 5 | from mock import ANY
|
6 | 6 |
|
7 | 7 | from anymail.signals import AnymailTrackingEvent
|
@@ -109,3 +109,52 @@ def test_open_event(self):
|
109 | 109 | self.assertEqual(event.user_agent, "Mozilla/5.0 (Windows NT 5.1; rv:11.0) Gecko Firefox/11.0")
|
110 | 110 | self.assertEqual(event.tags, [])
|
111 | 111 | self.assertEqual(event.metadata, {})
|
| 112 | + |
| 113 | + def test_click_event(self): |
| 114 | + raw_event = { |
| 115 | + "ClickLocation": "HTML", |
| 116 | + "Client": { |
| 117 | + "Name": "Chrome 35.0.1916.153", |
| 118 | + "Company": "Google", |
| 119 | + "Family": "Chrome" |
| 120 | + }, |
| 121 | + "OS": { |
| 122 | + "Name": "OS X 10.7 Lion", |
| 123 | + "Company": "Apple Computer, Inc.", |
| 124 | + "Family": "OS X 10" |
| 125 | + }, |
| 126 | + "Platform": "Desktop", |
| 127 | + "UserAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) etc.", |
| 128 | + "OriginalLink": "https://example.com/click/me", |
| 129 | + "Geo": { |
| 130 | + "CountryISOCode": "RS", |
| 131 | + "Country": "Serbia", |
| 132 | + "RegionISOCode": "VO", |
| 133 | + "Region": "Autonomna Pokrajina Vojvodina", |
| 134 | + "City": "Novi Sad", |
| 135 | + "Zip": "21000", |
| 136 | + "Coords": "45.2517,19.8369", |
| 137 | + "IP": "8.8.8.8" |
| 138 | + }, |
| 139 | + "MessageID": "f4830d10-9c35-4f0c-bca3-3d9b459821f8", |
| 140 | + "ReceivedAt": "2017-10-25T15:21:11.9065619Z", |
| 141 | + "Tag": "welcome-email", |
| 142 | + |
| 143 | + } |
| 144 | + response = self.client.post('/anymail/postmark/tracking/', |
| 145 | + content_type='application/json', data=json.dumps(raw_event)) |
| 146 | + self.assertEqual(response.status_code, 200) |
| 147 | + kwargs = self.assert_handler_called_once_with(self.tracking_handler, sender=PostmarkTrackingWebhookView, |
| 148 | + event=ANY, esp_name='Postmark') |
| 149 | + event = kwargs['event'] |
| 150 | + self.assertIsInstance(event, AnymailTrackingEvent) |
| 151 | + self.assertEqual(event.event_type, "clicked") |
| 152 | + self.assertEqual(event.esp_event, raw_event) |
| 153 | + self.assertEqual(event.timestamp, datetime(2017, 10, 25, 15, 21, 11, microsecond=906561, |
| 154 | + tzinfo=utc)) |
| 155 | + self.assertEqual(event.message_id, "f4830d10-9c35-4f0c-bca3-3d9b459821f8") |
| 156 | + self. assertEqual( event. recipient, "[email protected]") |
| 157 | + self.assertEqual(event.user_agent, "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) etc.") |
| 158 | + self.assertEqual(event.click_url, "https://example.com/click/me") |
| 159 | + self.assertEqual(event.tags, ["welcome-email"]) |
| 160 | + self.assertEqual(event.metadata, {}) |
0 commit comments