SendGrid: Set to field when using merge_data (#14)

* Set to field when using merge_data

The `to` field is required even if providing recipient addresses in x-smtpapi. See https://sendgrid.com/docs/API_Reference/Web_API/mail.html#-send.

* Check data['to'] contains expected emails

* Add space for toname check

* Make `to` expected data contain email only
This commit is contained in:
Lewis Taylor
2016-05-18 19:01:54 +01:00
committed by Mike Edmunds
parent 23becd35a9
commit 72d899460c
2 changed files with 3 additions and 2 deletions

View File

@@ -100,6 +100,7 @@ class SendGridPayload(RequestsPayload):
self.set_recipients('to', self.to_list) self.set_recipients('to', self.to_list)
else: else:
# Merge-friendly smtpapi 'to' field # Merge-friendly smtpapi 'to' field
self.set_recipients('to', self.to_list)
self.smtpapi['to'] = [email.address for email in self.to_list] self.smtpapi['to'] = [email.address for email in self.to_list]
self.all_recipients += self.to_list self.all_recipients += self.to_list

View File

@@ -431,8 +431,8 @@ class SendGridBackendAnymailFeatureTests(SendGridBackendMockAPITestCase):
data = self.get_api_call_data() data = self.get_api_call_data()
smtpapi = self.get_smtpapi() smtpapi = self.get_smtpapi()
self.assertNotIn('to', data) # recipients should be moved to smtpapi-to with merge_data self.assertEqual(data['toname'], [' ', 'Bob'])
self.assertNotIn('toname', data) self.assertEqual(data['to'], ['alice@example.com', 'bob@example.com'])
self.assertEqual(smtpapi['to'], ['alice@example.com', 'Bob <bob@example.com>']) self.assertEqual(smtpapi['to'], ['alice@example.com', 'Bob <bob@example.com>'])
self.assertEqual(smtpapi['sub'], { self.assertEqual(smtpapi['sub'], {
':name': ["Alice", "Bob"], ':name': ["Alice", "Bob"],