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 ..exceptions import AnymailAPIError
from ..message import AnymailRecipientStatus
from ..utils import get_anymail_setting
class EmailBackend(AnymailBaseBackend):
@@ -137,16 +136,3 @@ class TestPayload(BasePayload):
def set_esp_extra(self, extra):
# Merge extra into params
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.translation import ugettext_lazy
from anymail.backends.test import EmailBackend as TestBackend
from anymail.exceptions import AnymailConfigurationError, AnymailInvalidAddress, AnymailUnsupportedFeature
from anymail.message import AnymailMessage
from anymail.utils import get_anymail_setting
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')
class TestBackendTestCase(SimpleTestCase, AnymailTestMixin):
"""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")
@override_settings(EMAIL_BACKEND='anymail.backends.test._EmailBackendWithRequiredSetting')
@override_settings(EMAIL_BACKEND='tests.test_general_backend.SettingsTestBackend')
class BackendSettingsTests(TestBackendTestCase):
"""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'\bANYMAIL_TEST_SAMPLE_SETTING\b')
@override_settings(ANYMAIL={'SENDGRID_USERNAME': 'username_from_settings',
'SENDGRID_PASSWORD': 'password_from_settings'})
@override_settings(ANYMAIL={'TEST_USERNAME': 'username_from_settings',
'TEST_PASSWORD': 'password_from_settings',
'TEST_SAMPLE_SETTING': 'required'})
def test_username_password_kwargs_overrides(self):
"""Overrides for 'username' and 'password' should work like other overrides"""
# 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('anymail.backends.sendgrid_v2.EmailBackend')
backend = get_connection()
self.assertEqual(backend.username, 'username_from_settings')
self.assertEqual(backend.password, 'password_from_settings')
backend = get_connection('anymail.backends.sendgrid_v2.EmailBackend',
username='username_from_kwargs', password='password_from_kwargs')
backend = get_connection(username='username_from_kwargs', password='password_from_kwargs')
self.assertEqual(backend.username, 'username_from_kwargs')
self.assertEqual(backend.password, 'password_from_kwargs')