repo/gentoo:master commit in: dev-python/django/files/, dev-python/django/

Michał Górny <[email protected]> Wed, 05 Aug 2026 07:48:07 +0000 (UTC)
Newsgroups gmane.linux.gentoo.cvs
Message-ID <1785915100.aae5261c5f117b9083cc932f3ace885506f65832.mgorny@gentoo>
commit:     aae5261c5f117b9083cc932f3ace885506f65832
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Aug  5 07:31:34 2026 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Aug  5 07:31:40 2026 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=aae5261c

dev-python/django: Backport SMTP py3.15 test fix to 6.x

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 dev-python/django/django-6.0.7.ebuild              |  2 +
 .../django/files/django-6.0.7-py315-mail.patch     | 47 ++++++++++++++++++++++
 2 files changed, 49 insertions(+)

diff --git a/dev-python/django/django-6.0.7.ebuild b/dev-python/django/django-6.0.7.ebuild
index f5b8bb6eb04a..6a24eeb26d4c 100644
--- a/dev-python/django/django-6.0.7.ebuild
+++ b/dev-python/django/django-6.0.7.ebuild
@@ -62,6 +62,8 @@ PATCHES=(
 	# e7f539f813bd56a71ca3c1fbf379f47691002086
 	# plus my own fixes
 	"${FILESDIR}"/django-6.0.7-py315.patch
+	# rebase of 25cf1cbb1cb92c6c57b76cc43d697cfdc61f568f
+	"${FILESDIR}"/django-6.0.7-py315-mail.patch
 )
 
 distutils_enable_sphinx docs --no-autodoc

diff --git a/dev-python/django/files/django-6.0.7-py315-mail.patch b/dev-python/django/files/django-6.0.7-py315-mail.patch
new file mode 100644
index 000000000000..231fe32b2c1d
--- /dev/null
+++ b/dev-python/django/files/django-6.0.7-py315-mail.patch
@@ -0,0 +1,47 @@
+diff --git a/tests/mail/tests.py b/tests/mail/tests.py
+index 5cc9148d5b..5cf7bac2da 100644
+--- a/tests/mail/tests.py
++++ b/tests/mail/tests.py
+@@ -11,6 +11,7 @@ from datetime import datetime, timezone
+ from email import message_from_binary_file
+ from email import message_from_bytes as _message_from_bytes
+ from email import policy
++from email.errors import HeaderWriteError
+ from email.headerregistry import Address
+ from email.message import EmailMessage as PyEmailMessage
+ from email.message import Message as PyMessage
+@@ -3145,17 +3146,25 @@ class SMTPBackendTests(BaseEmailBackendTests, SMTPBackendTestsBase):
+         )
+ 
+     def test_rejects_non_ascii_local_part(self):
+-        """
+-        The SMTP EmailBackend does not currently support non-ASCII local-parts.
+-        (That would require using the RFC 6532 SMTPUTF8 extension.) #35713.
+-        """
++        # The SMTP EmailBackend must work around invalid email encoding caused
++        # by https://github.com/python/cpython/issues/122476 (#35713).
++        try:
++            # Detect fix for CPython issue gh-122476.
++            message = PyEmailMessage()
++            message["To"] = "nø@example.dk"
++            message.as_bytes()
++        except HeaderWriteError:
++            # PY315: Error from Python email generator.
++            msg = "Non-ASCII local-part 'nø' is invalid"
++        else:
++            # Python <=3.14: Error from smtp.EmailBackend.prep_address().
++            msg = (
++                "Invalid address 'nø@example.dk': local-part contains "
++                "non-ASCII characters"
++            )
+         backend = smtp.EmailBackend()
+-        backend.connection = mock.Mock(spec=object())
+         email = EmailMessage(to=["nø@example.dk"])
+-        with self.assertRaisesMessage(
+-            ValueError,
+-            "Invalid address 'nø@example.dk': local-part contains non-ASCII characters",
+-        ):
++        with self.assertRaisesMessage((ValueError, HeaderWriteError), msg):
+             backend.send_messages([email])
+ 
+     def test_prep_address_without_force_ascii(self):