Drop legacy DjrillBackendHTTPError exception

This commit is contained in:
medmunds
2015-11-29 12:55:16 -08:00
parent 209f9573ff
commit 699216ba00
3 changed files with 5 additions and 52 deletions

View File

@@ -409,26 +409,3 @@ class DjrillBackend(BaseEmailBackend):
'content': content_b64.decode('ascii'),
}
return mandrill_attachment, is_embedded_image
############################################################################################
# Recreate this module, but with a warning on attempts to import deprecated properties.
# This is ugly, but (surprisingly) blessed: http://stackoverflow.com/a/7668273/647002
import sys
import types
class ModuleWithDeprecatedProps(types.ModuleType):
def __init__(self, module):
self._orig_module = module # must keep a ref around, or it'll get deallocated
super(ModuleWithDeprecatedProps, self).__init__(module.__name__, module.__doc__)
self.__dict__.update(module.__dict__)
@property
def DjrillBackendHTTPError(self):
removed_in_djrill_2("DjrillBackendHTTPError will be removed in Djrill 2.0. "
"Use djrill.MandrillAPIError instead.")
return MandrillAPIError
sys.modules[__name__] = ModuleWithDeprecatedProps(sys.modules[__name__])

View File

@@ -6,8 +6,7 @@ import warnings
from django.core import mail
from django.test import TestCase
from djrill import MandrillAPIError, NotSupportedByMandrillError
from djrill.exceptions import RemovedInDjrill2
from djrill import NotSupportedByMandrillError
from djrill.tests.mock_backend import DjrillBackendMockAPITestCase
from djrill.tests.utils import reset_warning_registry
@@ -36,15 +35,6 @@ class DjrillBackendDeprecationTests(DjrillBackendMockAPITestCase):
self.assertEqual(data['message']['global_merge_vars'],
[{'name': 'DATE', 'content': "2022-10-11 00:00:00"}])
def test_deprecated_djrill_backend_http_error(self):
"""Djrill 0.2 deprecated DjrillBackendHTTPError; 2.0 will drop it"""
def try_import():
# noinspection PyUnresolvedReferences
from djrill.mail.backends.djrill import DjrillBackendHTTPError
self.assertWarnsMessage(DeprecationWarning,
"DjrillBackendHTTPError will be removed in Djrill 2.0",
try_import)
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:
@@ -66,17 +56,6 @@ class DjrillBackendDeprecationTests(DjrillBackendMockAPITestCase):
class DjrillLegacyExceptionTests(TestCase):
def test_DjrillBackendHTTPError(self):
"""MandrillApiError was DjrillBackendHTTPError in 0.2.0"""
# ... and had to be imported from deep in the package:
with warnings.catch_warnings():
warnings.filterwarnings('ignore', category=RemovedInDjrill2,
message="DjrillBackendHTTPError will be removed in Djrill 2.0")
# noinspection PyUnresolvedReferences
from djrill.mail.backends.djrill import DjrillBackendHTTPError
ex = MandrillAPIError("testing")
self.assertIsInstance(ex, DjrillBackendHTTPError)
def test_NotSupportedByMandrillError(self):
"""Unsupported features used to just raise ValueError in 0.2.0"""
ex = NotSupportedByMandrillError("testing")

View File

@@ -53,6 +53,10 @@ Removed DjrillMessage class
You should replace any uses of it with the standard
:class:`~django.core.mail.EmailMessage` class.
Removed DjrillBackendHTTPError
This exception was deprecated in Djrill 0.3. Replace uses of it
with :exc:`djrill.MandrillAPIError`.
**Dates in merge data and other attributes**
@@ -72,13 +76,6 @@ or datetime values used in any Mandrill message attributes other
than `send_at`. See :ref:`formatting-merge-data` for other options.
**DjrillBackendHTTPError**
The ``DjrillBackendHTTPError`` exception was replaced in Djrill 0.3
with :exc:`djrill.MandrillAPIError`. Djrill 1.4 will report a
DeprecationWarning if you are still importing DjrillBackendHTTPError.
Older Releases
--------------