mirror of
https://github.com/pacnpal/django-anymail.git
synced 2025-12-20 11:51:05 -05:00
Tests: stop using sendgrid_v2 backend for settings tests
This commit is contained in:
@@ -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)
|
|
||||||
|
|||||||
@@ -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')
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user