File tree Expand file tree Collapse file tree 3 files changed +36
-0
lines changed
Expand file tree Collapse file tree 3 files changed +36
-0
lines changed Original file line number Diff line number Diff line change @@ -21,4 +21,5 @@ Patches and suggestions
2121- `@gnarvaja <https://github.com/gnarvaja >`_
2222- `@pegler <https://github.com/pegler >`_
2323- `@puttu <https://github.com/puttu >`_
24+ - Janusz Skonieczny `@wooyek <https://github.com/wooyek >`_
2425- ADD YOURSELF HERE (and link to your github page)
Original file line number Diff line number Diff line change @@ -90,4 +90,12 @@ def __init__(self, message):
9090 if hasattr (message , 'campaign' ):
9191 formatted ['campaign' ] = message .campaign
9292
93+ if message .extra_headers :
94+ formatted ['custom_headers' ] = message .extra_headers
95+ if 'X-MSYS-API' in message .extra_headers :
96+ import json
97+ msys_api = json .loads (message .extra_headers ['X-MSYS-API' ])
98+ if msys_api and msys_api .get ('options' , {}).get ('transactional' , False ): # noqa: E501
99+ formatted ['transactional' ] = True
100+
93101 super (SparkPostMessage , self ).__init__ (formatted )
Original file line number Diff line number Diff line change @@ -228,3 +228,30 @@ def test_reply_to():
228228
229229 assert message (reply_to = ['replyone@example.com' ,
230230 'replytwo@example.com' ]) == expected
231+
232+
233+ def test_extra_headers ():
234+ email_message = EmailMessage (** base_options )
235+ email_message .extra_headers ['FOO' ] = 'bar'
236+
237+ actual = SparkPostMessage (email_message )
238+ expected = dict (
239+ custom_headers = {'FOO' : 'bar' },
240+ )
241+ expected .update (base_expected )
242+ assert actual == expected
243+
244+
245+ def test_transactional ():
246+ email_message = EmailMessage (** base_options )
247+ import json
248+ msys_api = json .dumps ({'options' : {'transactional' : True }})
249+ email_message .extra_headers ['X-MSYS-API' ] = msys_api
250+
251+ actual = SparkPostMessage (email_message )
252+ expected = dict (
253+ custom_headers = {'X-MSYS-API' : msys_api },
254+ transactional = True ,
255+ )
256+ expected .update (base_expected )
257+ assert actual == expected
You can’t perform that action at this time.
0 commit comments