Tests: stop using sendgrid_v2 backend for settings tests

This commit is contained in:
medmunds
2018-05-30 16:00:49 -07:00
parent 0730e96884
commit 52a6d2d822
2 changed files with 21 additions and 21 deletions

View File

@@ -3,7 +3,6 @@ from django.core import mail
from .base import AnymailBaseBackend, BasePayload from .base import AnymailBaseBackend, BasePayload
from ..exceptions import AnymailAPIError from ..exceptions import AnymailAPIError
from ..message import AnymailRecipientStatus from ..message import AnymailRecipientStatus
from ..utils import get_anymail_setting
class EmailBackend(AnymailBaseBackend): class EmailBackend(AnymailBaseBackend):
@@ -137,16 +136,3 @@ class TestPayload(BasePayload):
def set_esp_extra(self, extra): def set_esp_extra(self, extra):
# Merge extra into params # Merge extra into params
self.params.update(extra) self.params.update(extra)
class _EmailBackendWithRequiredSetting(EmailBackend):
"""Test backend with a required setting `sample_setting`.
Intended only for internal use by Anymail settings tests.
"""
def __init__(self, *args, **kwargs):
esp_name = self.esp_name
self.sample_setting = get_anymail_setting('sample_setting', esp_name=esp_name,
kwargs=kwargs, allow_bare=True)
super(_EmailBackendWithRequiredSetting, self).__init__(*args, **kwargs)

View File

@@ -11,12 +11,27 @@ from django.utils.functional import Promise
from django.utils.timezone import utc from django.utils.timezone import utc
from django.utils.translation import ugettext_lazy from django.utils.translation import ugettext_lazy
from anymail.backends.test import EmailBackend as TestBackend
from anymail.exceptions import AnymailConfigurationError, AnymailInvalidAddress, AnymailUnsupportedFeature from anymail.exceptions import AnymailConfigurationError, AnymailInvalidAddress, AnymailUnsupportedFeature
from anymail.message import AnymailMessage from anymail.message import AnymailMessage
from anymail.utils import get_anymail_setting
from .utils import AnymailTestMixin from .utils import AnymailTestMixin
class SettingsTestBackend(TestBackend):
"""(useful only for these tests)"""
def __init__(self, *args, **kwargs):
esp_name = self.esp_name
self.sample_setting = get_anymail_setting('sample_setting', esp_name=esp_name,
kwargs=kwargs, allow_bare=True)
self.username = get_anymail_setting('username', esp_name=esp_name, kwargs=kwargs,
default=None, allow_bare=True)
self.password = get_anymail_setting('password', esp_name=esp_name, kwargs=kwargs,
default=None, allow_bare=True)
super(SettingsTestBackend, self).__init__(*args, **kwargs)
@override_settings(EMAIL_BACKEND='anymail.backends.test.EmailBackend') @override_settings(EMAIL_BACKEND='anymail.backends.test.EmailBackend')
class TestBackendTestCase(SimpleTestCase, AnymailTestMixin): class TestBackendTestCase(SimpleTestCase, AnymailTestMixin):
"""Base TestCase using Anymail's Test EmailBackend""" """Base TestCase using Anymail's Test EmailBackend"""
@@ -45,7 +60,7 @@ class TestBackendTestCase(SimpleTestCase, AnymailTestMixin):
raise AttributeError("The last message sent was not processed through the Anymail test backend") raise AttributeError("The last message sent was not processed through the Anymail test backend")
@override_settings(EMAIL_BACKEND='anymail.backends.test._EmailBackendWithRequiredSetting') @override_settings(EMAIL_BACKEND='tests.test_general_backend.SettingsTestBackend')
class BackendSettingsTests(TestBackendTestCase): class BackendSettingsTests(TestBackendTestCase):
"""Test settings initializations for Anymail EmailBackends""" """Test settings initializations for Anymail EmailBackends"""
@@ -79,18 +94,17 @@ class BackendSettingsTests(TestBackendTestCase):
self.assertRegex(errmsg, r'\bTEST_SAMPLE_SETTING\b') self.assertRegex(errmsg, r'\bTEST_SAMPLE_SETTING\b')
self.assertRegex(errmsg, r'\bANYMAIL_TEST_SAMPLE_SETTING\b') self.assertRegex(errmsg, r'\bANYMAIL_TEST_SAMPLE_SETTING\b')
@override_settings(ANYMAIL={'SENDGRID_USERNAME': 'username_from_settings', @override_settings(ANYMAIL={'TEST_USERNAME': 'username_from_settings',
'SENDGRID_PASSWORD': 'password_from_settings'}) 'TEST_PASSWORD': 'password_from_settings',
'TEST_SAMPLE_SETTING': 'required'})
def test_username_password_kwargs_overrides(self): def test_username_password_kwargs_overrides(self):
"""Overrides for 'username' and 'password' should work like other overrides""" """Overrides for 'username' and 'password' should work like other overrides"""
# These are special-cased because of default args in Django core mail functions. # These are special-cased because of default args in Django core mail functions.
# (Use the SendGrid v2 backend, which has settings named 'username' and 'password'.) backend = get_connection()
backend = get_connection('anymail.backends.sendgrid_v2.EmailBackend')
self.assertEqual(backend.username, 'username_from_settings') self.assertEqual(backend.username, 'username_from_settings')
self.assertEqual(backend.password, 'password_from_settings') self.assertEqual(backend.password, 'password_from_settings')
backend = get_connection('anymail.backends.sendgrid_v2.EmailBackend', backend = get_connection(username='username_from_kwargs', password='password_from_kwargs')
username='username_from_kwargs', password='password_from_kwargs')
self.assertEqual(backend.username, 'username_from_kwargs') self.assertEqual(backend.username, 'username_from_kwargs')
self.assertEqual(backend.password, 'password_from_kwargs') self.assertEqual(backend.password, 'password_from_kwargs')