<feed xmlns='http://www.w3.org/2005/Atom'>
<title>chango.git/tests/auth_tests/test_forms.py, branch devmain</title>
<subtitle>django
</subtitle>
<id>http://cgit.adnoto.dev/chango.git/atom?h=devmain</id>
<link rel='self' href='http://cgit.adnoto.dev/chango.git/atom?h=devmain'/>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/chango.git/'/>
<updated>2026-05-13T21:00:56Z</updated>
<entry>
<title>Fixed #35514 -- Implemented dictionary-based MAILERS.</title>
<updated>2026-05-13T21:00:56Z</updated>
<author>
<name>Mike Edmunds</name>
<email>medmunds@gmail.com</email>
</author>
<published>2026-04-01T23:59:14Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/chango.git/commit/?id=0f581cd29d42d1b5ed1dafb67794c2f3ce6705c9'/>
<id>urn:sha1:0f581cd29d42d1b5ed1dafb67794c2f3ce6705c9</id>
<content type='text'>
See DEP 0018.

Added:
* MAILERS setting.
* django.core.mail.mailers dict-like EmailBackend factory.
* `using` argument to mail sending APIs.
* `sent_using` attribute to mail.outbox messages in locmem backend.
* MAILERS in startproject settings template, set to console backend.
* AdminLogHandler.using argument.
* BrokenLinkEmailsMiddleware.send_mail() method.

Updated:
* BaseEmailBackend to track the MAILERS alias used to construct it, and
  to report errors for unknown kwargs (OPTIONS).
* EmailBackend implementations to initialize from kwargs (OPTIONS) only
  when MAILERS is being used.
* smtp.EmailBackend to require `host` option and to default `port`
  option based on SSL/TLS options.
* SimpleTestCase setup to substitute the locmem backend for all defined
  MAILERS configurations.
* Django's tests that send mail to define MAILERS.

Deprecated:
* EMAIL_BACKEND and other backend-related EMAIL_* settings.
* mail.get_connection().
* The `connection`, `fail_silently`, `auth_user`, and `auth_password`
  arguments to mail functions.
* The EmailMessage.connection attribute.
* BaseEmailBackend support for `fail_silently`. Backends that support
  fail_silently (SMTP, console, file) now implement it directly.
* AdminEmailHandler.email_backend argument.

Removed undocumented features without deprecation:
* EmailMessage.get_connection() method. (send() now raises an error if a
  subclass has attempted to override it.)
* EmailMessage.send() no longer sets self.connection to the connection
  used for sending. (It still _uses_ a pre-existing self.connection.)
* AdminEmailHandler.connection() method. (Init now raises an error if a
  subclass has attempted to override it.)

Thanks to Natalia Bidart for shepherding DEP 0018 and for extensive
reviews and suggestions on the implementation.

Thanks to Jacob Rief for the initial implementation and multiple
iterations while refining the design.

Co-authored-by: Jacob Rief &lt;jacob.rief@gmail.com&gt;
</content>
</entry>
<entry>
<title>Refs #35514 -- Cleaned up logging and middleware tests.</title>
<updated>2026-05-07T01:39:16Z</updated>
<author>
<name>Mike Edmunds</name>
<email>medmunds@gmail.com</email>
</author>
<published>2026-04-14T19:43:07Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/chango.git/commit/?id=21dcd9a94fb3e9edeec883d12cd1dcac5e773abe'/>
<id>urn:sha1:21dcd9a94fb3e9edeec883d12cd1dcac5e773abe</id>
<content type='text'>
Simplified and removed use of soon-to-be-deprecated or removed features
from tests for AdminEmailHandler and BrokenLinkEmailsMiddleware. Added
or updated cases to ensure `fail_silently` usage remains consistent
during the transition to email providers.

Changed custom FailingEmailBackend to respect fail_silently and record
its use in a class-level property.

In AdminEmailHandlerTest:

* Added make_log_record() helper to reduce duplicated code.

* Changed test_fail_silently() to send through the FailingEmailBackend,
  which will fail if not initialized with fail_silently=True. (Rather
  than inspecting attributes of a soon-to-be-deprecated connection.)

* Simplified test_uses_custom_email_backend() by replacing monkeypatches
  with inspectable custom backend.

* In test_customize_send_mail_method(), removed use of the undocumented
  self.connection() method and the soon-to-be-deprecated `connection`
  arg to mail_managers(). This test verifies a subclass can customize
  sending by mailing the managers rather than the admins. Involving a
  email backend connection was irrelevant.

In BrokenLinkEmailsMiddlewareTest, added a case with FailingEmailBackend
to verify send uses fail_silently=True.
</content>
</entry>
<entry>
<title>Applied Black's 2026 stable style.</title>
<updated>2026-01-18T20:26:56Z</updated>
<author>
<name>Mariusz Felisiak</name>
<email>felisiak.mariusz@gmail.com</email>
</author>
<published>2026-01-18T20:26:56Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/chango.git/commit/?id=6cff02078799b7c683a0d39630d49ab4fe532e7c'/>
<id>urn:sha1:6cff02078799b7c683a0d39630d49ab4fe532e7c</id>
<content type='text'>
https://github.com/psf/black/releases/tag/26.1.0</content>
</entry>
<entry>
<title>Refs #31223 -- Added __class_getitem__() to SetPasswordMixin.</title>
<updated>2025-10-14T12:13:52Z</updated>
<author>
<name>Thibaut Decombe</name>
<email>thibaut.decombe@gmail.com</email>
</author>
<published>2025-07-13T18:01:02Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/chango.git/commit/?id=d0c8f89c942d1379724bdd37127076d13452f71d'/>
<id>urn:sha1:d0c8f89c942d1379724bdd37127076d13452f71d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fixed #35581 -- Updated django.core.mail to Python's modern email API.</title>
<updated>2025-07-25T11:50:02Z</updated>
<author>
<name>Mike Edmunds</name>
<email>medmunds@gmail.com</email>
</author>
<published>2024-12-23T23:01:36Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/chango.git/commit/?id=9ab1991689000821a4d86b8617e1c1455a327482'/>
<id>urn:sha1:9ab1991689000821a4d86b8617e1c1455a327482</id>
<content type='text'>
- Changed EmailMessage.message() to construct a "modern email API"
  email.message.EmailMessage and added policy keyword arg.
- Added support for modern MIMEPart objects in EmailMessage.attach()
  (and EmailMessage constructor, EmailMessage.attachments list).
- Updated SMTP EmailBackend to use modern email.policy.SMTP.

Deprecated:
- Attaching MIMEBase objects (replace with MIMEPart)
- BadHeaderError (modern email uses ValueError)
- SafeMIMEText, SafeMIMEMultipart (unnecessary for modern email)
- django.core.mail.forbid_multi_line_headers()
  (undocumented, but exposed via `__all__` and in wide use)
- django.core.mail.message.sanitize_address()
  (undocumented, but in wide use)

Removed without deprecation (all undocumented):
- EmailMessage.mixed_subtype
- EmailMultiAlternatives.alternative_subtype
- Support for setting (undocumented) EmailMessage.encoding property
  to a legacy email.charset.Charset object

Related changes:
- Dropped tests for incorrect RFC 2047 encoding of non-ASCII email
  address localparts. This is specifically prohibited by RFC 2047, and
  not supported by any known MTA or email client. (Python still
  mis-applies encoded-word to non-ASCII localparts, but it is a bug that
  may be fixed in the future.)
- Added tests that try to discourage using Python's legacy email APIs
  in future updates to django.core.mail.
</content>
</entry>
<entry>
<title>Refs #36500 -- Rewrapped long docstrings and block comments via a script.</title>
<updated>2025-07-23T23:17:55Z</updated>
<author>
<name>django-bot</name>
<email>ops@djangoproject.com</email>
</author>
<published>2025-07-23T03:41:41Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/chango.git/commit/?id=69a93a88edb56ba47f624dac7a21aacc47ea474f'/>
<id>urn:sha1:69a93a88edb56ba47f624dac7a21aacc47ea474f</id>
<content type='text'>
Rewrapped long docstrings and block comments to 79 characters + newline
using script from https://github.com/medmunds/autofix-w505.
</content>
</entry>
<entry>
<title>Fixed #36163 -- Deprecated most positional arguments in django.core.mail.</title>
<updated>2025-07-17T17:01:16Z</updated>
<author>
<name>Mike Edmunds</name>
<email>medmunds@gmail.com</email>
</author>
<published>2025-07-16T22:01:49Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/chango.git/commit/?id=fc793fc303a3d516ab51bb21aa317031caabe7b4'/>
<id>urn:sha1:fc793fc303a3d516ab51bb21aa317031caabe7b4</id>
<content type='text'>
In public mail APIs, changed less frequently used parameters from
keyword-or-positional to keyword-only, emitting a warning during the
required deprecation period.
</content>
</entry>
<entry>
<title>Refs #35959 -- Added render_password_as_hash auth template tag for password rendering.</title>
<updated>2025-04-17T15:00:20Z</updated>
<author>
<name>Sarah Boyce</name>
<email>42296566+sarahboyce@users.noreply.github.com</email>
</author>
<published>2025-04-16T18:44:00Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/chango.git/commit/?id=8a0ad1ebe313a4f4fca6e9068c06ee400d15b8a4'/>
<id>urn:sha1:8a0ad1ebe313a4f4fca6e9068c06ee400d15b8a4</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fixed #34917 -- Underlined links in the main content area of the admin.</title>
<updated>2025-03-27T12:27:33Z</updated>
<author>
<name>antoliny0919</name>
<email>antoliny0919@gmail.com</email>
</author>
<published>2025-03-27T07:43:57Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/chango.git/commit/?id=849f8307a5bb33465252d0891a9b2c47dde65889'/>
<id>urn:sha1:849f8307a5bb33465252d0891a9b2c47dde65889</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fixed #36140 -- Allowed BaseUserCreationForm to define non required password fields.</title>
<updated>2025-02-02T01:49:07Z</updated>
<author>
<name>nessita</name>
<email>124304+nessita@users.noreply.github.com</email>
</author>
<published>2025-02-02T01:49:07Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/chango.git/commit/?id=d15454a6e84a595ffc8dc1b926282f484f782a8f'/>
<id>urn:sha1:d15454a6e84a595ffc8dc1b926282f484f782a8f</id>
<content type='text'>
Regression in e626716c28b6286f8cf0f8174077f3d2244f3eb3.

Thanks buffgecko12 for the report and Sarah Boyce for the review.</content>
</entry>
</feed>
