mirror of
https://github.com/pacnpal/django-anymail.git
synced 2025-12-20 03:41:05 -05:00
Use generic TestBackend for base functionality tests
* Create generic TestBackend that simply collects send parameters * Change BackendSettingsTests to TestBackend, and add some missing cases * Add UnsupportedFeatureTests * Replace repetitive per-backend SEND_DEFAULTS test cases with single (and more comprehensive) SendDefaultsTests
This commit is contained in:
@@ -597,71 +597,6 @@ class SendGridBackendSessionSharingTestCase(SessionSharingTestCasesMixin, SendGr
|
||||
pass # tests are defined in the mixin
|
||||
|
||||
|
||||
@override_settings(ANYMAIL_SEND_DEFAULTS={
|
||||
'metadata': {'global': 'globalvalue', 'other': 'othervalue'},
|
||||
'tags': ['globaltag'],
|
||||
'track_clicks': True,
|
||||
'track_opens': True,
|
||||
'esp_extra': {'globaloption': 'globalsetting'},
|
||||
})
|
||||
class SendGridBackendSendDefaultsTests(SendGridBackendMockAPITestCase):
|
||||
"""Tests backend support for global SEND_DEFAULTS"""
|
||||
|
||||
def test_send_defaults(self):
|
||||
"""Test that global send defaults are applied"""
|
||||
self.message.send()
|
||||
data = self.get_api_call_data()
|
||||
smtpapi = self.get_smtpapi()
|
||||
# All these values came from ANYMAIL_SEND_DEFAULTS:
|
||||
smtpapi['unique_args'].pop('smtp-id', None) # remove Message-ID we added as tracking workaround
|
||||
self.assertEqual(smtpapi['unique_args'], {'global': 'globalvalue', 'other': 'othervalue'})
|
||||
self.assertEqual(smtpapi['category'], ['globaltag'])
|
||||
self.assertEqual(smtpapi['filters']['clicktrack']['settings']['enable'], 1)
|
||||
self.assertEqual(smtpapi['filters']['opentrack']['settings']['enable'], 1)
|
||||
self.assertEqual(data['globaloption'], 'globalsetting')
|
||||
|
||||
def test_merge_message_with_send_defaults(self):
|
||||
"""Test that individual message settings are *merged into* the global send defaults"""
|
||||
self.message.metadata = {'message': 'messagevalue', 'other': 'override'}
|
||||
self.message.tags = ['messagetag']
|
||||
self.message.track_clicks = False
|
||||
self.message.esp_extra = {'messageoption': 'messagesetting'}
|
||||
|
||||
self.message.send()
|
||||
data = self.get_api_call_data()
|
||||
smtpapi = self.get_smtpapi()
|
||||
# All these values came from ANYMAIL_SEND_DEFAULTS + message.*:
|
||||
smtpapi['unique_args'].pop('smtp-id', None) # remove Message-ID we added as tracking workaround
|
||||
self.assertEqual(smtpapi['unique_args'], {
|
||||
'global': 'globalvalue',
|
||||
'message': 'messagevalue', # additional metadata
|
||||
'other': 'override', # override global value
|
||||
})
|
||||
self.assertCountEqual(smtpapi['category'], ['globaltag', 'messagetag']) # tags concatenated
|
||||
self.assertEqual(smtpapi['filters']['clicktrack']['settings']['enable'], 0) # message overrides
|
||||
self.assertEqual(smtpapi['filters']['opentrack']['settings']['enable'], 1)
|
||||
self.assertEqual(data['globaloption'], 'globalsetting')
|
||||
self.assertEqual(data['messageoption'], 'messagesetting') # additional esp_extra
|
||||
|
||||
@override_settings(ANYMAIL_SENDGRID_SEND_DEFAULTS={
|
||||
'tags': ['esptag'],
|
||||
'metadata': {'esp': 'espvalue'},
|
||||
'track_opens': False,
|
||||
})
|
||||
def test_esp_send_defaults(self):
|
||||
"""Test that ESP-specific send defaults override individual global defaults"""
|
||||
self.message.send()
|
||||
data = self.get_api_call_data()
|
||||
smtpapi = self.get_smtpapi()
|
||||
# All these values came from ANYMAIL_SEND_DEFAULTS plus ANYMAIL_SENDGRID_SEND_DEFAULTS:
|
||||
smtpapi['unique_args'].pop('smtp-id', None) # remove Message-ID we added as tracking workaround
|
||||
self.assertEqual(smtpapi['unique_args'], {'esp': 'espvalue'}) # entire metadata overridden
|
||||
self.assertCountEqual(smtpapi['category'], ['esptag']) # entire tags overridden
|
||||
self.assertEqual(smtpapi['filters']['clicktrack']['settings']['enable'], 1) # no override
|
||||
self.assertEqual(smtpapi['filters']['opentrack']['settings']['enable'], 0) # esp override
|
||||
self.assertEqual(data['globaloption'], 'globalsetting') # we didn't override the global esp_extra
|
||||
|
||||
|
||||
@override_settings(EMAIL_BACKEND="anymail.backends.sendgrid.SendGridBackend")
|
||||
class SendGridBackendImproperlyConfiguredTests(SimpleTestCase, AnymailTestMixin):
|
||||
"""Test ESP backend without required settings in place"""
|
||||
|
||||
Reference in New Issue
Block a user