Webhook tests define a local signal receiver function,
so connect it using the `weak=False` option to set
a good example.
(This isn't technically needed in the tests: the test receivers
are only connected while their definitions are still in scope,
so they couldn't possibly be garbage collected. But it doesn't
hurt, and it's good practice in case the test code gets copied.)
Also update the webhook docs to have a direct link to
Django's "listening to signals" info.
2.0.0-dev0 --> 2.0.0.dev0 (or just 2.0.dev0)
We still practice semver in the major.minor.patch
versions; we just don't use semver's "-" for
pre-release versions. (Because, PEP 0440.)
https://www.python.org/dev/peps/pep-0440/
* Break apart massive _send call
* Try to facilitate subclassing
* Centralize fail_silently handling during _send
* Include original EmailMessage as exception attr
* Add common base DjrillException
* Simplify backend by moving logic
to describe errors into base DjrillException
* Add NotSerializableForMandrillError
for JSON serialization errors
Raise new MandrillRecipientsRefused exception
when Mandrill returns 'reject' or 'invalid' status
for *all* recipients of a message.
(Similar to Django's SMTP email backend raising
SMTPRecipientsRefused.)
Add setting MANDRILL_IGNORE_RECIPIENT_STATUS
to override the new exception.
Trap JSON parsing errors in Mandrill API response,
and raise MandrillAPIError for them. (Helps with #93.)
Closes#80.
Closes#81.
Rapid-fire pelting from our Travis tests sometimes
causes the Mandrill API to queue a "send" call, rather
than deal with it immediately. If that occurs, we
generally have to just ignore that test (in that test run).
Master is now 1.5.0-dev (to avoid accidents),
but the 1.4 branch is expected to be the end
of the 1.x line.
2.0 development will begin on a separate branch soon.
Django 1.8's reset_warning_registry (which we backport)
was generating `RuntimeError: dictionary changed size
during iteration` in Travis tests under Python 3.x.
Likely a thread-safety issue on sys.modules.values().
See https://code.djangoproject.com/ticket/21049
for fix applied elsewhere in Django.
* Add some context to exceptions on unserializable
values (addresses #89).
* Document need to format merge data
(into something JSON-serializable).
* Add RemovedInDjrill2 DeprecationWarning.
* Deprecate blanket date/datetime serialization.
* Django 1.8 requires TEMPLATES setting (for admin tests)
* Ignore cycle tag deprecation warnings
One remaining PendingDeprecationWarning: "the imp module is
deprecated in favour of importlib" is coming from six, and has a fix
waiting to land: https://bitbucket.org/gutworth/six/issue/112
Closes#82.
* Test mock API responses (with actual content) in admin tests.
(This exposes failure case, at least under Python 3.4/Django 1.6.)
* Parse json from Response.text, rather than raw Response.content
bytes, in admin views.
(Improves testing accuracy around API response encoding.)
* Add `six` as test dependency (six.BytesIO, six.b)
* Change MockResponse content to bytes (because HTTP responses
are bytes, not strings)