Skip to content

Commit 99873b5

Browse files
authored
Merge pull request #127 from SparkPost/tweaks
2 parents b78b2df + bfc4cf7 commit 99873b5

File tree

3 files changed

+52
-3
lines changed

3 files changed

+52
-3
lines changed

sparkpost/suppression_list.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ def list(self, **kwargs):
2929
'from_date': 'from',
3030
'to_date': 'to',
3131
'types': 'types',
32+
'sources': 'sources',
3233
'limit': 'limit'
3334
}
3435
params = dict([(key_map[i], kwargs[i]) for i in list(key_map.keys())

sparkpost/transmissions.py

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ def _translate_keys(self, **kwargs):
6161
model['recipients']['list_id'] = recipient_list
6262
else:
6363
recipients = kwargs.get('recipients', [])
64+
recipients = self._extract_recipients(recipients)
6465
cc = kwargs.get('cc')
6566
bcc = kwargs.get('bcc')
6667

@@ -72,7 +73,7 @@ def _translate_keys(self, **kwargs):
7273
bcc_copies = self._format_copies(recipients, bcc)
7374
recipients = recipients + bcc_copies
7475

75-
model['recipients'] = self._extract_recipients(recipients)
76+
model['recipients'] = recipients
7677

7778
attachments = kwargs.get('attachments', [])
7879
model['content']['attachments'] = self._extract_attachments(
@@ -90,9 +91,19 @@ def _format_copies(self, recipients, copies):
9091
if len(recipients) > 0:
9192
formatted_copies = self._extract_recipients(copies)
9293
for recipient in formatted_copies:
93-
recipient['address'].update({'header_to': recipients[0]})
94+
recipient['address'].update({
95+
'header_to': self._format_header_to(recipients[0])
96+
})
9497
return formatted_copies
9598

99+
def _format_header_to(self, recipient):
100+
if 'name' in recipient['address']:
101+
return '"{name}" <{email}>'.format(
102+
name=recipient['address']['name'],
103+
email=recipient['address']['email']
104+
)
105+
return recipient['address']['email']
106+
96107
def _extract_attachments(self, attachments):
97108
formatted_attachments = []
98109
for attachment in attachments:
@@ -230,7 +241,8 @@ def send(self, **kwargs):
230241
"""
231242

232243
payload = self._translate_keys(**kwargs)
233-
results = self.request('POST', self.uri, data=json.dumps(payload))
244+
results = self.request('POST', self.uri,
245+
data=json.dumps(payload, ensure_ascii=False))
234246
return results
235247

236248
def _fetch_get(self, transmission_id):

test/test_transmissions.py

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,42 @@ def test_translate_keys_for_from_email():
5858
}
5959

6060

61+
def test_format_header_to():
62+
t = Transmissions('uri', 'key')
63+
formatted = t._format_header_to(recipient={
64+
'address': {'email': '[email protected]'}
65+
})
66+
assert formatted == '[email protected]'
67+
68+
formatted = t._format_header_to(recipient={
69+
'address': {'name': 'Testing', 'email': '[email protected]'}
70+
})
71+
assert formatted == '"Testing" <[email protected]>'
72+
73+
74+
def test_cc_with_sub_data():
75+
t = Transmissions('uri', 'key')
76+
results = t._translate_keys(
77+
recipients=[{
78+
'address': {'email': '[email protected]'},
79+
'substitution_data': {'fake': 'data'}
80+
}],
81+
82+
)
83+
assert results['recipients'] == [
84+
{
85+
'address': {'email': '[email protected]'},
86+
'substitution_data': {'fake': 'data'}
87+
},
88+
{
89+
'address': {
90+
'email': '[email protected]',
91+
'header_to': '[email protected]'
92+
}
93+
}
94+
]
95+
96+
6197
def test_translate_keys_with_cc():
6298
t = Transmissions('uri', 'key')
6399
results = t._translate_keys(recipients=['[email protected]'],

0 commit comments

Comments
 (0)