Rename EmailBackends for Django consistency

* **Future breaking change:**
  Rename all Anymail backends to just `EmailBackend`,
  matching Django's naming convention.
  (E.g., switch to "anymail.backends.mailgun.EmailBackend"
  rather than "anymail.backends.mailgun.MailgunBackend".)

  The old names still work, but will issue a DeprecationWarning
  and will be removed in some future release.

  (Apologies for this change; the old naming convention was
  a holdover from Djrill, and I wanted consistency with
  other Django EmailBackends before hitting 1.0.)

Fixes #49.
This commit is contained in:
medmunds
2017-01-20 15:47:37 -08:00
parent bff01b440a
commit 79288603fb
29 changed files with 190 additions and 71 deletions

View File

@@ -5,13 +5,15 @@ from .base import AnymailBaseBackend, BasePayload
from ..utils import get_anymail_setting
class TestBackend(AnymailBaseBackend):
class EmailBackend(AnymailBaseBackend):
"""
Anymail backend that doesn't do anything.
Used for testing Anymail common backend functionality.
"""
esp_name = "Test"
def __init__(self, *args, **kwargs):
# Init options from Django settings
esp_name = self.esp_name
@@ -19,7 +21,7 @@ class TestBackend(AnymailBaseBackend):
kwargs=kwargs, allow_bare=True)
self.recorded_send_params = get_anymail_setting('recorded_send_params', default=[],
esp_name=esp_name, kwargs=kwargs)
super(TestBackend, self).__init__(*args, **kwargs)
super(EmailBackend, self).__init__(*args, **kwargs)
def build_message_payload(self, message, defaults):
return TestPayload(backend=self, message=message, defaults=defaults)
@@ -47,6 +49,14 @@ class TestBackend(AnymailBaseBackend):
raise AnymailAPIError('Unparsable test response')
# Pre-v0.8 naming (immediately deprecated for this undocumented test feature)
class TestBackend(object):
def __init__(self, **kwargs):
raise NotImplementedError(
"Anymail's (undocumented) TestBackend has been renamed to "
"'anymail.backends.test.EmailBackend'")
class TestPayload(BasePayload):
# For test purposes, just keep a dict of the params we've received.
# (This approach is also useful for native API backends -- think of