diff --git a/meta-python/recipes-devtools/python/python3-django/0001-Fix-tag_strip-tests.patch b/meta-python/recipes-devtools/python/python3-django/0001-Fix-tag_strip-tests.patch new file mode 100644 index 0000000000..be5d11e0ba --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-django/0001-Fix-tag_strip-tests.patch @@ -0,0 +1,37 @@ +From bd3ffbbacceef7fabd3135ca90eba1397e2b5901 Mon Sep 17 00:00:00 2001 +From: Your Name +Date: Tue, 13 Jan 2026 20:07:35 +0000 +Subject: [PATCH] Fix tag_strip tests + +Python's htmlparser behavior changed between python versions, and +the tests expect incorrect result due to this. + +This patch is a partial backport, to use only the results that are +valid for the OE Python version. + +Upstream-Status: Backport [https://github.com/django/django/commit/2980627502c84a9fd09272e1349dc574a2ff1fb1] +Signed-off-by: Gyorgy Sarvari +--- + tests/utils_tests/test_html.py | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/tests/utils_tests/test_html.py b/tests/utils_tests/test_html.py +index 86f5562..71757ad 100644 +--- a/tests/utils_tests/test_html.py ++++ b/tests/utils_tests/test_html.py +@@ -89,10 +89,10 @@ class TestUtilsHtml(SimpleTestCase): + ('&gotcha&#;<>', '&gotcha&#;<>'), + ('ript>test</script>', 'ript>test'), + ('&h', 'alert()h'), +- ('>'), + ('X<<<
br>br>br>X', 'XX'), + ("<" * 50 + "a>" * 50, ""), +- (">" + "" + "" + ""), + (" +Date: Thu, 9 Dec 2021 20:24:38 +0100 +Subject: [PATCH] Fixed inspectdb.tests.InspectDBTestCase.test_custom_fields() + on SQLite 3.37+. + +From: Mariusz Felisiak + +Use FlexibleFieldLookupDict which is case-insensitive mapping because +SQLite 3.37+ returns some data type names upper-cased e.g. TEXT. + +Upstream-Status: Backport [https://github.com/django/django/commit/974e3b8750fe96c16c9c0b115a72ee4a2171df34] +Signed-off-by: Gyorgy Sarvari +--- + tests/inspectdb/tests.py | 11 +++++------ + 1 file changed, 5 insertions(+), 6 deletions(-) + +diff --git a/tests/inspectdb/tests.py b/tests/inspectdb/tests.py +index bb5e457..a2519cf 100644 +--- a/tests/inspectdb/tests.py ++++ b/tests/inspectdb/tests.py +@@ -256,18 +256,17 @@ class InspectDBTestCase(TestCase): + Introspection of columns with a custom field (#21090) + """ + out = StringIO() +- orig_data_types_reverse = connection.introspection.data_types_reverse +- try: +- connection.introspection.data_types_reverse = { ++ with mock.patch( ++ 'django.db.connection.introspection.data_types_reverse.base_data_types_reverse', ++ { + 'text': 'myfields.TextField', + 'bigint': 'BigIntegerField', +- } ++ }, ++ ): + call_command('inspectdb', 'inspectdb_columntypes', stdout=out) + output = out.getvalue() + self.assertIn("text_field = myfields.TextField()", output) + self.assertIn("big_int_field = models.BigIntegerField()", output) +- finally: +- connection.introspection.data_types_reverse = orig_data_types_reverse + + def test_introspection_errors(self): + """ diff --git a/meta-python/recipes-devtools/python/python3-django/0001-Fixed-test_utils.tests.HTMLEqualTests.test_parsing_e.patch b/meta-python/recipes-devtools/python/python3-django/0001-Fixed-test_utils.tests.HTMLEqualTests.test_parsing_e.patch new file mode 100644 index 0000000000..a84a118bcb --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-django/0001-Fixed-test_utils.tests.HTMLEqualTests.test_parsing_e.patch @@ -0,0 +1,32 @@ +From 744927154e6748db08f5232de78ee0d4a8be61a5 Mon Sep 17 00:00:00 2001 +From: Gyorgy Sarvari +Date: Mon, 21 Jul 2025 15:23:32 -0300 +Subject: [PATCH] Fixed test_utils.tests.HTMLEqualTests.test_parsing_errors + following Python's HTMLParser fixed parsing. + +From: Natalia <124304+nessita@users.noreply.github.com> + +Further details about Python changes can be found in: +https://github.com/python/cpython/commit/0243f97cbadec8d985e63b1daec5d1cbc850cae3. + +Thank you Clifford Gama for the thorough review! + +Upstream-Status: Backport [https://github.com/django/django/commit/e4515dad7a6d953c0bd2414127ba36e1446ff41a] +Signed-off-by: Gyorgy Sarvari +--- + tests/test_utils/tests.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/tests/test_utils/tests.py b/tests/test_utils/tests.py +index a1a113a..d1a1e35 100644 +--- a/tests/test_utils/tests.py ++++ b/tests/test_utils/tests.py +@@ -736,7 +736,7 @@ class HTMLEqualTests(SimpleTestCase): + "('Unexpected end tag `div` (Line 1, Column 6)', (1, 6))" + ) + with self.assertRaisesMessage(AssertionError, error_msg): +- self.assertHTMLEqual('< div>', '
') ++ self.assertHTMLEqual('< div>', '
') + with self.assertRaises(HTMLParseError): + parse_html('

') + diff --git a/meta-python/recipes-devtools/python/python3-django/0001-Made-RemoteTestResultTest.test_pickle_errors_detecti.patch b/meta-python/recipes-devtools/python/python3-django/0001-Made-RemoteTestResultTest.test_pickle_errors_detecti.patch new file mode 100644 index 0000000000..f515494254 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-django/0001-Made-RemoteTestResultTest.test_pickle_errors_detecti.patch @@ -0,0 +1,59 @@ +From 80d06be0a5dc82d8cf8dd8105b6734c188743fae Mon Sep 17 00:00:00 2001 +From: Gyorgy Sarvari +Date: Tue, 21 Oct 2025 21:11:44 +0200 +Subject: [PATCH] Made RemoteTestResultTest.test_pickle_errors_detection() + compatible with tblib 3.2+. + +From: Mariusz Felisiak + +tblib 3.2+ makes exception subclasses with __init__() and the default +__reduce__() picklable. This broke the test for +RemoteTestResult._confirm_picklable(), which expects a specific +exception to fail unpickling. + +https://github.com/ionelmc/python-tblib/blob/master/CHANGELOG.rst#320-2025-10-21 + +This fix defines ExceptionThatFailsUnpickling.__reduce__() in a way +that pickle.dumps(obj) succeeds, but pickle.loads(pickle.dumps(obj)) +raises TypeError. + +Refs #27301. This preserves the intent of the regression test from +52188a5ca6bafea0a66f17baacb315d61c7b99cd without skipping it. + +Upstream-Status: Backport [https://github.com/django/django/commit/548209e620b3ca34396a360453f07c8dbb8aa6c7] +Signed-off-by: Gyorgy Sarvari +--- + tests/test_runner/test_parallel.py | 8 ++++++++ + 1 file changed, 8 insertions(+) + +diff --git a/tests/test_runner/test_parallel.py b/tests/test_runner/test_parallel.py +index c1a89bd..7c72216 100644 +--- a/tests/test_runner/test_parallel.py ++++ b/tests/test_runner/test_parallel.py +@@ -1,3 +1,4 @@ ++import pickle + import unittest + + from django.test import SimpleTestCase +@@ -18,6 +19,12 @@ class ExceptionThatFailsUnpickling(Exception): + def __init__(self, arg): + super().__init__() + ++ def __reduce__(self): ++ # tblib 3.2+ makes exception subclasses picklable by default. ++ # Return (cls, ()) so the constructor fails on unpickle, preserving ++ # the needed behavior for test_pickle_errors_detection. ++ return (self.__class__, ()) ++ + + class ParallelTestRunnerTest(SimpleTestCase): + """ +@@ -59,6 +66,8 @@ class RemoteTestResultTest(SimpleTestCase): + result = RemoteTestResult() + result._confirm_picklable(picklable_error) + ++ # The exception can be pickled but not unpickled. ++ pickle.dumps(not_unpicklable_error) + msg = '__init__() missing 1 required positional argument' + with self.assertRaisesMessage(TypeError, msg): + result._confirm_picklable(not_unpicklable_error) diff --git a/meta-python/recipes-devtools/python/python3-django/0001-fix-quote-type-in-expected-error-message.patch b/meta-python/recipes-devtools/python/python3-django/0001-fix-quote-type-in-expected-error-message.patch new file mode 100644 index 0000000000..617d63aa35 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-django/0001-fix-quote-type-in-expected-error-message.patch @@ -0,0 +1,31 @@ +From 5cae184e0d57dacae25439e533c4e1ef6f6c4cae Mon Sep 17 00:00:00 2001 +From: Gyorgy Sarvari +Date: Tue, 13 Jan 2026 23:31:06 +0100 +Subject: [PATCH] fix quote type in expected error message + +Instead of double quotes the error is returned with single quotes. +This is localization dependent, comes from a po file - some locales use +single quotes, other are translated with double quotes. The default +locale used with the OE ptest image uses single quotes - adapt the test +to this. + +Upstream-Status: Inappropriate [This is not a nice solution. Hardcoding single quotes is not better than the original] + +Signed-off-by: Gyorgy Sarvari +--- + tests/forms_tests/field_tests/test_filefield.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/tests/forms_tests/field_tests/test_filefield.py b/tests/forms_tests/field_tests/test_filefield.py +index ba559ee..3880e11 100644 +--- a/tests/forms_tests/field_tests/test_filefield.py ++++ b/tests/forms_tests/field_tests/test_filefield.py +@@ -144,7 +144,7 @@ class MultipleFileFieldTest(SimpleTestCase): + evil_files[i:] + evil_files[:i] # Rotate by i. + for i in range(len(evil_files)) + ) +- msg = "File extension “sh” is not allowed. Allowed extensions are: " ++ msg = "File extension 'sh' is not allowed. Allowed extensions are: " + for rotated_evil_files in evil_rotations: + with self.assertRaisesMessage(ValidationError, msg): + f.clean(rotated_evil_files) diff --git a/meta-python/recipes-devtools/python/python3-django_2.2.28.bb b/meta-python/recipes-devtools/python/python3-django_2.2.28.bb index 0f6f8fc4d0..dedb2498cb 100644 --- a/meta-python/recipes-devtools/python/python3-django_2.2.28.bb +++ b/meta-python/recipes-devtools/python/python3-django_2.2.28.bb @@ -39,6 +39,11 @@ SRC_URI += "file://CVE-2023-31047.patch \ file://0001-fix-ipv6-test.patch \ file://0001-Fixed-32298-Fixed-URLValidator-hostname-length-valid.patch \ file://0001-Fixed-33367-Fixed-URLValidator-crash-in-some-edge-ca.patch \ + file://0001-Fix-tag_strip-tests.patch \ + file://0001-Fixed-inspectdb.tests.InspectDBTestCase.test_custom_.patch \ + file://0001-Fixed-test_utils.tests.HTMLEqualTests.test_parsing_e.patch \ + file://0001-Made-RemoteTestResultTest.test_pickle_errors_detecti.patch \ + file://0001-fix-quote-type-in-expected-error-message.patch \ " SRC_URI[sha256sum] = "0200b657afbf1bc08003845ddda053c7641b9b24951e52acd51f6abda33a7413"