<feed xmlns='http://www.w3.org/2005/Atom'>
<title>chango.git/tests/auth_tests, 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-28T18:31:55Z</updated>
<entry>
<title>Fixed #36225 -- Coped with lack of get_by_natural_key() in createsuperuser.</title>
<updated>2026-05-28T18:31:55Z</updated>
<author>
<name>babbitt</name>
<email>oss@joebabbitt.com</email>
</author>
<published>2026-05-19T18:11:29Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/chango.git/commit/?id=2c8c0ca0a0b73b167c29db506f810c318f915587'/>
<id>urn:sha1:2c8c0ca0a0b73b167c29db506f810c318f915587</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fixed #37019 -- Updated login() and logout() to set request.auser.</title>
<updated>2026-05-27T15:43:24Z</updated>
<author>
<name>vishwa</name>
<email>vis.pypi@gmail.com</email>
</author>
<published>2026-04-05T19:04:05Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/chango.git/commit/?id=8f84f269353e242e72eea55aa58df92d87df0453'/>
<id>urn:sha1:8f84f269353e242e72eea55aa58df92d87df0453</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Increased the default PBKDF2 iterations for Django 6.2.</title>
<updated>2026-05-20T20:17:41Z</updated>
<author>
<name>Sarah Boyce</name>
<email>42296566+sarahboyce@users.noreply.github.com</email>
</author>
<published>2026-05-13T16:05:40Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/chango.git/commit/?id=e78a46a8fb291a11a31b6938b5089db1058f3925'/>
<id>urn:sha1:e78a46a8fb291a11a31b6938b5089db1058f3925</id>
<content type='text'>
</content>
</entry>
<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>Refs #36439 -- Added sync_to_async() to dummy password hasher path.</title>
<updated>2026-05-06T16:00:27Z</updated>
<author>
<name>Jacob Walls</name>
<email>jacobtylerwalls@gmail.com</email>
</author>
<published>2026-05-04T20:26:26Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/chango.git/commit/?id=7f66c3b41f0fb0fb938d7b96e20a28dccdaa2ecd'/>
<id>urn:sha1:7f66c3b41f0fb0fb938d7b96e20a28dccdaa2ecd</id>
<content type='text'>
Since the existing user path eventually calls sync_to_async() in acheck_password,
aim for parity with the nonexistent/inactive user branch by adding sync_to_async().

Follow-up to 748ca0a146175c4868ece87f5e845a75416c30e3.
</content>
</entry>
<entry>
<title>Fixed #36300 -- Restored the semantic where RemoteUserMiddleware.header corresponds to request.META under ASGI.</title>
<updated>2026-05-06T14:42:15Z</updated>
<author>
<name>Jacob Walls</name>
<email>jacobtylerwalls@gmail.com</email>
</author>
<published>2026-05-01T16:20:28Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/chango.git/commit/?id=1085e5e17b7403b15c4eff397f3c98c15660f46d'/>
<id>urn:sha1:1085e5e17b7403b15c4eff397f3c98c15660f46d</id>
<content type='text'>
Because these tests always passed both WSGI environ values and HTTP
headers via `**extra`, this masked a behavior difference between WSGI
and ASGI.

What should happen: everything should be passed via `headers` but for
the default REMOTE_USER case on WSGI, which should be passed via
`**extra`.

Since that was not done, a regression made it into Django 5.2
(50f89ae850f6b4e35819fe725a08c7e579bfd099) where `.header` no longer
corresponded to the request.META key under ASGI. To cope, an ASGI user
would have started(*) sending HTTP headers that match the `.header`
attribute, which may or may not have been edited to remove the HTTP_
prefix. (Note: the default `REMOTE_USER` case did not work under ASGI,
so the change in Django 5.2 had the effect of fixing the default case
but changing the semantic of the custom case.)

(*): Unless they were getting the sync execution path, which didn't have
this bug. See the fix in 0f4fff79d33b7cc84822e66bd1fc16caf8222e3a.

Thanks Mykhailo Havelia and Sarah Boyce for reviews.
</content>
</entry>
<entry>
<title>Fixed #37079 -- Fixed specialization of header lookups in RemoteUserMiddleware.</title>
<updated>2026-05-04T17:58:50Z</updated>
<author>
<name>Jacob Walls</name>
<email>jacobtylerwalls@gmail.com</email>
</author>
<published>2026-04-30T18:53:17Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/chango.git/commit/?id=0147222691db284f87c8c2a64ac6b1eded034c49'/>
<id>urn:sha1:0147222691db284f87c8c2a64ac6b1eded034c49</id>
<content type='text'>
We need to switch on whether the request is a WSGI or ASGI request to
know whether to prepend `HTTP_`: we cannot assume sync exceution means
we are running under WSGI, as there could be other sync middleware
forcing sync execution under ASGI.

Thanks Mykhailo Havelia for the report.
</content>
</entry>
<entry>
<title>Refs #35303 -- Added missing async RemoteUserMiddleware tests for custom RemoteUserBackend.</title>
<updated>2026-05-01T20:18:51Z</updated>
<author>
<name>Sarah Boyce</name>
<email>42296566+sarahboyce@users.noreply.github.com</email>
</author>
<published>2026-05-01T06:26:20Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/chango.git/commit/?id=ac010061fd532a4f855c49298bc5096a9e0adcab'/>
<id>urn:sha1:ac010061fd532a4f855c49298bc5096a9e0adcab</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Refs #689 -- Made RemoteUserMiddleware ImproperlyConfigured error message handle subclasses.</title>
<updated>2026-05-01T20:18:51Z</updated>
<author>
<name>Sarah Boyce</name>
<email>42296566+sarahboyce@users.noreply.github.com</email>
</author>
<published>2026-04-30T11:07:40Z</published>
<link rel='alternate' type='text/html' href='http://cgit.adnoto.dev/chango.git/commit/?id=12dcba45cb0d3bcf735621c3b2175fdee08308d8'/>
<id>urn:sha1:12dcba45cb0d3bcf735621c3b2175fdee08308d8</id>
<content type='text'>
Co-authored-by: Arfey &lt;Arfey17.mg@gmail.com&gt;
</content>
</entry>
</feed>
