Deprecate DjrillMessage

This commit is contained in:
medmunds
2015-05-12 16:14:58 -07:00
parent 80895316f1
commit 8d274e7b16
3 changed files with 29 additions and 0 deletions

View File

@@ -1,5 +1,7 @@
from django.core.mail import EmailMultiAlternatives
from djrill.exceptions import removed_in_djrill_2
# DjrillMessage class is deprecated as of 0.2.0, but retained for
# compatibility with existing code. (New code can just set Mandrill-specific
@@ -12,6 +14,11 @@ class DjrillMessage(EmailMultiAlternatives):
cc=None, from_name=None, tags=None, track_opens=True,
track_clicks=True, preserve_recipients=None):
removed_in_djrill_2(
"DjrillMessage will be removed in Djrill 2.0. "
"Use django.core.mail.EmailMultiAlternatives instead."
)
super(DjrillMessage, self).__init__(subject, body, from_email, to, bcc,
connection, attachments, headers, alternatives, cc)

View File

@@ -7,6 +7,7 @@ from django.core import mail
from django.test import TestCase
from djrill import MandrillAPIError, NotSupportedByMandrillError, DjrillAdminSite
from djrill.exceptions import RemovedInDjrill2
from djrill.mail import DjrillMessage
from djrill.tests.mock_backend import DjrillBackendMockAPITestCase
from djrill.tests.utils import reset_warning_registry
@@ -42,6 +43,13 @@ class DjrillBackendDeprecationTests(DjrillBackendMockAPITestCase):
self.assertEqual(data['message']['global_merge_vars'],
[{'name': 'DATE', 'content': "2022-10-11 00:00:00"}])
def test_deprecated_djrill_message_class(self):
"""Djrill 0.2 deprecated DjrillMessage; 2.0 will drop it"""
self.assertWarnsMessage(DeprecationWarning,
"DjrillMessage will be removed in Djrill 2.0",
DjrillMessage)
def assertWarnsMessage(self, warning, message, callable, *args, **kwds):
"""Checks that `callable` issues a warning of category `warning` containing `message`"""
with warnings.catch_warnings(record=True) as warned:
@@ -69,6 +77,12 @@ class DjrillMessageTests(TestCase):
"""
def run(self, result=None):
with warnings.catch_warnings():
# DjrillMessage deprecation is tested in test_deprecated_djrill_message_class above
warnings.filterwarnings('ignore', category=RemovedInDjrill2,
message="DjrillMessage will be removed in Djrill 2.0")
def setUp(self):
self.subject = "Djrill baby djrill."
self.from_name = "Tarzan"

View File

@@ -47,6 +47,14 @@ in debug mode.)
or `datetime` values used in any Mandrill message attributes other
than `send_at`. See :ref:`formatting-merge-data` for other options.
* **DjrillMessage class**
The ``DjrillMessage`` class has not been needed since Djrill 0.2.
You can simply set Djrill message attributes on any Django
:class:`~django.core.mail.EmailMultiAlternatives` object.
Djrill 1.4 will report a `DeprecationWarning` if you are still
using ``DjrillMessage``.
Change Log
----------