Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-django-taggit for 
openSUSE:Factory checked in at 2023-05-05 15:59:00
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-django-taggit (Old)
 and      /work/SRC/openSUSE:Factory/.python-django-taggit.new.1533 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-django-taggit"

Fri May  5 15:59:00 2023 rev:3 rq:1084969 version:4.0.0

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/python-django-taggit/python-django-taggit.changes    
    2023-01-04 17:53:58.990669802 +0100
+++ 
/work/SRC/openSUSE:Factory/.python-django-taggit.new.1533/python-django-taggit.changes
      2023-05-05 15:59:18.388779984 +0200
@@ -1,0 +2,8 @@
+Fri May  5 07:37:01 UTC 2023 - Markéta Machová <[email protected]>
+
+- update to 4.0.0
+  * Remove Python 3.6 support (no code changes occurred, but we no longer test 
this release).
+  * Remove Django 4.0 support (no code changes occurred, but we no longer test 
this release).
+  * Add Django 4.2 support.
+
+-------------------------------------------------------------------

Old:
----
  django-taggit-3.1.0.tar.gz

New:
----
  django-taggit-4.0.0.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-django-taggit.spec ++++++
--- /var/tmp/diff_new_pack.APRzQw/_old  2023-05-05 15:59:18.876782780 +0200
+++ /var/tmp/diff_new_pack.APRzQw/_new  2023-05-05 15:59:18.880782803 +0200
@@ -23,7 +23,7 @@
 BuildArch:      noarch
 %endif
 Name:           python-%{mod_name}
-Version:        3.1.0
+Version:        4.0.0
 Release:        0
 Summary:        Django-taggit is a reusable Django application for simple 
tagging
 License:        BSD-3-Clause-Clear

++++++ django-taggit-3.1.0.tar.gz -> django-taggit-4.0.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/django-taggit-3.1.0/CHANGELOG.rst 
new/django-taggit-4.0.0/CHANGELOG.rst
--- old/django-taggit-3.1.0/CHANGELOG.rst       2022-11-18 05:56:41.000000000 
+0100
+++ new/django-taggit-4.0.0/CHANGELOG.rst       2023-05-04 04:12:10.000000000 
+0200
@@ -4,6 +4,12 @@
 (Unreleased)
 ~~~~~~~~~~~~
 
+4.0.0 (2023-05-04)
+~~~~~~~~~~~~~~~~~~
+* Remove Python 3.6 support (no code changes occurred, but we no longer test 
this release).
+* Remove Django 4.0 support (no code changes occurred, but we no longer test 
this release).
+* Add Django 4.2 support.
+
 3.1.0 (2022-11-08)
 ~~~~~~~~~~~~~~~~~~
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/django-taggit-3.1.0/PKG-INFO 
new/django-taggit-4.0.0/PKG-INFO
--- old/django-taggit-3.1.0/PKG-INFO    2022-11-18 05:56:53.237284200 +0100
+++ new/django-taggit-4.0.0/PKG-INFO    2023-05-04 04:12:21.831687700 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: django-taggit
-Version: 3.1.0
+Version: 4.0.0
 Summary: django-taggit is a reusable Django application for simple tagging.
 Home-page: https://github.com/jazzband/django-taggit
 Author: Alex Gaynor
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/django-taggit-3.1.0/django_taggit.egg-info/PKG-INFO 
new/django-taggit-4.0.0/django_taggit.egg-info/PKG-INFO
--- old/django-taggit-3.1.0/django_taggit.egg-info/PKG-INFO     2022-11-18 
05:56:53.000000000 +0100
+++ new/django-taggit-4.0.0/django_taggit.egg-info/PKG-INFO     2023-05-04 
04:12:21.000000000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: django-taggit
-Version: 3.1.0
+Version: 4.0.0
 Summary: django-taggit is a reusable Django application for simple tagging.
 Home-page: https://github.com/jazzband/django-taggit
 Author: Alex Gaynor
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/django-taggit-3.1.0/docs/faq.rst 
new/django-taggit-4.0.0/docs/faq.rst
--- old/django-taggit-3.1.0/docs/faq.rst        2022-11-18 05:56:41.000000000 
+0100
+++ new/django-taggit-4.0.0/docs/faq.rst        2023-05-04 04:12:10.000000000 
+0200
@@ -7,7 +7,7 @@
 
  So if you are using the standard setup, ``Tag.objects.all()`` will give you 
the tags.
 
- - How can I use this with factory_boy?
+- How can I use this with factory_boy?
 
  Since these are all built off of many-to-many relationships, you can check 
out `factory_boy's documentation on this topic 
<https://factoryboy.readthedocs.io/en/stable/recipes.html#simple-many-to-many-relationship>`_
 and get some ideas on how to deal with tags.
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/django-taggit-3.1.0/taggit/__init__.py 
new/django-taggit-4.0.0/taggit/__init__.py
--- old/django-taggit-3.1.0/taggit/__init__.py  2022-11-18 05:56:41.000000000 
+0100
+++ new/django-taggit-4.0.0/taggit/__init__.py  2023-05-04 04:12:10.000000000 
+0200
@@ -4,7 +4,7 @@
     # setup.py and docs do not have Django installed.
     django = None
 
-VERSION = (3, 1, 0)
+VERSION = (4, 0, 0)
 __version__ = ".".join(str(i) for i in VERSION)
 
 if django and django.VERSION < (3, 2):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/django-taggit-3.1.0/taggit/managers.py 
new/django-taggit-4.0.0/taggit/managers.py
--- old/django-taggit-3.1.0/taggit/managers.py  2022-11-18 05:56:41.000000000 
+0100
+++ new/django-taggit-4.0.0/taggit/managers.py  2023-05-04 04:12:10.000000000 
+0200
@@ -33,6 +33,7 @@
     """
 
     contains_aggregate = False
+    contains_over_clause = False
 
     def __init__(self, alias, col, content_types):
         self.alias = alias
@@ -701,11 +702,29 @@
         return self.get_reverse_path_info()
 
     def get_joining_columns(self, reverse_join=False):
+        # RemovedInDjango60Warning
+        # 
https://github.com/django/django/commit/8b1ff0da4b162e87edebd94e61f2cd153e9e159d
         if reverse_join:
             return ((self.model._meta.pk.column, "object_id"),)
         else:
             return (("object_id", self.model._meta.pk.column),)
 
+    def get_joining_fields(self, reverse_join=False):
+        if reverse_join:
+            return (
+                (
+                    self.model._meta.pk,
+                    self.remote_field.through._meta.get_field("object_id"),
+                ),
+            )
+        else:
+            return (
+                (
+                    self.remote_field.through._meta.get_field("object_id"),
+                    self.model._meta.pk,
+                ),
+            )
+
     def _get_extra_restriction(self, alias, related_alias):
         extra_col = self.through._meta.get_field("content_type").column
         content_type_ids = [
@@ -727,8 +746,13 @@
         get_extra_restriction = _get_extra_restriction
 
     def get_reverse_joining_columns(self):
+        # RemovedInDjango60Warning
+        # 
https://github.com/django/django/commit/8b1ff0da4b162e87edebd94e61f2cd153e9e159d
         return self.get_joining_columns(reverse_join=True)
 
+    def get_reverse_joining_fields(self):
+        return self.get_joining_fields(reverse_join=True)
+
     @property
     def related_fields(self):
         return [(self.through._meta.get_field("object_id"), 
self.model._meta.pk)]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/django-taggit-3.1.0/taggit/migrations/0001_initial.py 
new/django-taggit-4.0.0/taggit/migrations/0001_initial.py
--- old/django-taggit-3.1.0/taggit/migrations/0001_initial.py   2022-11-18 
05:56:41.000000000 +0100
+++ new/django-taggit-4.0.0/taggit/migrations/0001_initial.py   2023-05-04 
04:12:10.000000000 +0200
@@ -2,7 +2,6 @@
 
 
 class Migration(migrations.Migration):
-
     dependencies = [("contenttypes", "0001_initial")]
 
     operations = [
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/django-taggit-3.1.0/taggit/migrations/0002_auto_20150616_2121.py 
new/django-taggit-4.0.0/taggit/migrations/0002_auto_20150616_2121.py
--- old/django-taggit-3.1.0/taggit/migrations/0002_auto_20150616_2121.py        
2022-11-18 05:56:41.000000000 +0100
+++ new/django-taggit-4.0.0/taggit/migrations/0002_auto_20150616_2121.py        
2023-05-04 04:12:10.000000000 +0200
@@ -2,7 +2,6 @@
 
 
 class Migration(migrations.Migration):
-
     dependencies = [("taggit", "0001_initial")]
 
     operations = [
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/django-taggit-3.1.0/taggit/migrations/0003_taggeditem_add_unique_index.py 
new/django-taggit-4.0.0/taggit/migrations/0003_taggeditem_add_unique_index.py
--- 
old/django-taggit-3.1.0/taggit/migrations/0003_taggeditem_add_unique_index.py   
    2022-11-18 05:56:41.000000000 +0100
+++ 
new/django-taggit-4.0.0/taggit/migrations/0003_taggeditem_add_unique_index.py   
    2023-05-04 04:12:10.000000000 +0200
@@ -2,7 +2,6 @@
 
 
 class Migration(migrations.Migration):
-
     dependencies = [
         ("contenttypes", "0002_remove_content_type_name"),
         ("taggit", "0002_auto_20150616_2121"),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/django-taggit-3.1.0/taggit/migrations/0004_alter_taggeditem_content_type_alter_taggeditem_tag.py
 
new/django-taggit-4.0.0/taggit/migrations/0004_alter_taggeditem_content_type_alter_taggeditem_tag.py
--- 
old/django-taggit-3.1.0/taggit/migrations/0004_alter_taggeditem_content_type_alter_taggeditem_tag.py
        2022-11-18 05:56:41.000000000 +0100
+++ 
new/django-taggit-4.0.0/taggit/migrations/0004_alter_taggeditem_content_type_alter_taggeditem_tag.py
        2023-05-04 04:12:10.000000000 +0200
@@ -7,7 +7,6 @@
 
 
 class Migration(migrations.Migration):
-
     dependencies = [
         ("contenttypes", "0002_remove_content_type_name"),
         ("taggit", "0003_taggeditem_add_unique_index"),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/django-taggit-3.1.0/taggit/migrations/0005_auto_20220424_2025.py 
new/django-taggit-4.0.0/taggit/migrations/0005_auto_20220424_2025.py
--- old/django-taggit-3.1.0/taggit/migrations/0005_auto_20220424_2025.py        
2022-11-18 05:56:41.000000000 +0100
+++ new/django-taggit-4.0.0/taggit/migrations/0005_auto_20220424_2025.py        
2023-05-04 04:12:10.000000000 +0200
@@ -4,7 +4,6 @@
 
 
 class Migration(migrations.Migration):
-
     dependencies = [
         ("taggit", "0004_alter_taggeditem_content_type_alter_taggeditem_tag"),
     ]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/django-taggit-3.1.0/tests/migrations/0001_initial.py 
new/django-taggit-4.0.0/tests/migrations/0001_initial.py
--- old/django-taggit-3.1.0/tests/migrations/0001_initial.py    2022-11-18 
05:56:41.000000000 +0100
+++ new/django-taggit-4.0.0/tests/migrations/0001_initial.py    2023-05-04 
04:12:10.000000000 +0200
@@ -7,7 +7,6 @@
 
 
 class Migration(migrations.Migration):
-
     initial = True
 
     dependencies = [
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/django-taggit-3.1.0/tests/migrations/0002_auto_20200214_1129.py 
new/django-taggit-4.0.0/tests/migrations/0002_auto_20200214_1129.py
--- old/django-taggit-3.1.0/tests/migrations/0002_auto_20200214_1129.py 
2022-11-18 05:56:41.000000000 +0100
+++ new/django-taggit-4.0.0/tests/migrations/0002_auto_20200214_1129.py 
2023-05-04 04:12:10.000000000 +0200
@@ -9,7 +9,6 @@
 
 
 class Migration(migrations.Migration):
-
     dependencies = [
         ("taggit", "0003_taggeditem_add_unique_index"),
         ("contenttypes", "0002_remove_content_type_name"),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/django-taggit-3.1.0/tests/migrations/0003_auto_20210310_0918.py 
new/django-taggit-4.0.0/tests/migrations/0003_auto_20210310_0918.py
--- old/django-taggit-3.1.0/tests/migrations/0003_auto_20210310_0918.py 
2022-11-18 05:56:41.000000000 +0100
+++ new/django-taggit-4.0.0/tests/migrations/0003_auto_20210310_0918.py 
2023-05-04 04:12:10.000000000 +0200
@@ -7,7 +7,6 @@
 
 
 class Migration(migrations.Migration):
-
     dependencies = [
         ("taggit", "0003_taggeditem_add_unique_index"),
         ("contenttypes", "0002_remove_content_type_name"),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/django-taggit-3.1.0/tests/migrations/0004_auto_20210619_0826.py 
new/django-taggit-4.0.0/tests/migrations/0004_auto_20210619_0826.py
--- old/django-taggit-3.1.0/tests/migrations/0004_auto_20210619_0826.py 
2022-11-18 05:56:41.000000000 +0100
+++ new/django-taggit-4.0.0/tests/migrations/0004_auto_20210619_0826.py 
2023-05-04 04:12:10.000000000 +0200
@@ -7,7 +7,6 @@
 
 
 class Migration(migrations.Migration):
-
     dependencies = [
         ("contenttypes", "0002_remove_content_type_name"),
         ("taggit", "0003_taggeditem_add_unique_index"),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/django-taggit-3.1.0/tests/migrations/0005_auto_20210713_2301.py 
new/django-taggit-4.0.0/tests/migrations/0005_auto_20210713_2301.py
--- old/django-taggit-3.1.0/tests/migrations/0005_auto_20210713_2301.py 
2022-11-18 05:56:41.000000000 +0100
+++ new/django-taggit-4.0.0/tests/migrations/0005_auto_20210713_2301.py 
2023-05-04 04:12:10.000000000 +0200
@@ -6,7 +6,6 @@
 
 
 class Migration(migrations.Migration):
-
     dependencies = [
         ("tests", "0004_auto_20210619_0826"),
     ]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/django-taggit-3.1.0/tests/serializers.py 
new/django-taggit-4.0.0/tests/serializers.py
--- old/django-taggit-3.1.0/tests/serializers.py        2022-11-18 
05:56:41.000000000 +0100
+++ new/django-taggit-4.0.0/tests/serializers.py        2023-05-04 
04:12:10.000000000 +0200
@@ -6,7 +6,6 @@
 
 
 class TestModelSerializer(TaggitSerializer, serializers.ModelSerializer):
-
     tags = TagListSerializerField()
 
     class Meta:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/django-taggit-3.1.0/tests/test_serializers.py 
new/django-taggit-4.0.0/tests/test_serializers.py
--- old/django-taggit-3.1.0/tests/test_serializers.py   2022-11-18 
05:56:41.000000000 +0100
+++ new/django-taggit-4.0.0/tests/test_serializers.py   2023-05-04 
04:12:10.000000000 +0200
@@ -67,7 +67,7 @@
         assert serializer.is_valid(), serializer.errors
         test_model = serializer.save()
 
-        assert set(tag.name for tag in test_model.tags.all()) == {"1", "2", 
"3"}
+        assert {tag.name for tag in test_model.tags.all()} == {"1", "2", "3"}
 
     def test_taggit_removes_tags(self):
         """
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/django-taggit-3.1.0/tests/tests.py 
new/django-taggit-4.0.0/tests/tests.py
--- old/django-taggit-3.1.0/tests/tests.py      2022-11-18 05:56:41.000000000 
+0100
+++ new/django-taggit-4.0.0/tests/tests.py      2023-05-04 04:12:10.000000000 
+0200
@@ -1,6 +1,7 @@
 from io import StringIO
 from unittest import mock
 
+from django import VERSION as DJANGO_VERSION
 from django.contrib.contenttypes.models import ContentType
 from django.core import serializers
 from django.core.exceptions import ValidationError
@@ -919,11 +920,21 @@
     food_model = Food
 
     def _get_form_str(self, form_str):
-        form_str %= {
-            "help_start": '<span class="helptext">',
-            "help_stop": "</span>",
-            "required": "required",
-        }
+        if DJANGO_VERSION >= (5, 0):
+            # Django defaults to div-based form rendering in 5.0
+            # 
https://github.com/django/django/commit/98756c685ee173bbd43f21ed0553f808be835ce5
+            # 
https://github.com/django/django/commit/232b60a21b951bd16b8c95b34fcbcbf3ecd89fca
+            form_str %= {
+                "help_start": '<div class="helptext">',
+                "help_stop": "</div>",
+                "required": "required",
+            }
+        else:
+            form_str %= {
+                "help_start": '<span class="helptext">',
+                "help_stop": "</span>",
+                "required": "required",
+            }
         return form_str
 
     def assertFormRenders(self, form, html):
@@ -933,11 +944,18 @@
         self.assertEqual(list(self.form_class.base_fields), ["name", "tags"])
 
         f = self.form_class({"name": "apple", "tags": "green, red, yummy"})
-        self.assertFormRenders(
-            f,
-            """<tr><th><label for="id_name">Name:</label></th><td><input 
id="id_name" type="text" name="name" value="apple" maxlength="50" %(required)s 
/></td></tr>
-<tr><th><label for="id_tags">Tags:</label></th><td><input type="text" 
name="tags" value="green, red, yummy" id="id_tags" %(required)s /><br 
/>%(help_start)sA comma-separated list of tags.%(help_stop)s</td></tr>""",
-        )
+        if DJANGO_VERSION >= (5, 0):
+            self.assertFormRenders(
+                f,
+                """<div><label for="id_name">Name:</label><input id="id_name" 
type="text" name="name" value="apple" maxlength="50" %(required)s /></div>
+    <div><label for="id_tags">Tags:</label>%(help_start)sA comma-separated 
list of tags.%(help_stop)s<input type="text" name="tags" value="green, red, 
yummy" id="id_tags" %(required)s /></div>""",
+            )
+        else:
+            self.assertFormRenders(
+                f,
+                """<tr><th><label for="id_name">Name:</label></th><td><input 
id="id_name" type="text" name="name" value="apple" maxlength="50" %(required)s 
/></td></tr>
+    <tr><th><label for="id_tags">Tags:</label></th><td><input type="text" 
name="tags" value="green, red, yummy" id="id_tags" %(required)s /><br 
/>%(help_start)sA comma-separated list of tags.%(help_stop)s</td></tr>""",
+            )
         f.save()
         apple = self.food_model.objects.get(name="apple")
         self.assert_tags_equal(apple.tags.all(), ["green", "red", "yummy"])
@@ -954,27 +972,48 @@
         self.assertFalse(f.is_valid())
 
         f = self.form_class(instance=apple)
-        self.assertFormRenders(
-            f,
-            """<tr><th><label for="id_name">Name:</label></th><td><input 
id="id_name" type="text" name="name" value="apple" maxlength="50" %(required)s 
/></td></tr>
-<tr><th><label for="id_tags">Tags:</label></th><td><input type="text" 
name="tags" value="delicious, green, red, yummy" id="id_tags" %(required)s 
/><br />%(help_start)sA comma-separated list of tags.%(help_stop)s</td></tr>""",
-        )
+        if DJANGO_VERSION >= (5, 0):
+            self.assertFormRenders(
+                f,
+                """<div><label for="id_name">Name:</label><input id="id_name" 
type="text" name="name" value="apple" maxlength="50" %(required)s /></div>
+    <div><label for="id_tags">Tags:</label>%(help_start)sA comma-separated 
list of tags.%(help_stop)s<input type="text" name="tags" value="delicious, 
green, red, yummy" id="id_tags" %(required)s /></div>""",
+            )
+        else:
+            self.assertFormRenders(
+                f,
+                """<tr><th><label for="id_name">Name:</label></th><td><input 
id="id_name" type="text" name="name" value="apple" maxlength="50" %(required)s 
/></td></tr>
+    <tr><th><label for="id_tags">Tags:</label></th><td><input type="text" 
name="tags" value="delicious, green, red, yummy" id="id_tags" %(required)s 
/><br />%(help_start)sA comma-separated list of tags.%(help_stop)s</td></tr>""",
+            )
 
         apple.tags.add("has,comma")
         f = self.form_class(instance=apple)
-        self.assertFormRenders(
-            f,
-            """<tr><th><label for="id_name">Name:</label></th><td><input 
id="id_name" type="text" name="name" value="apple" maxlength="50" %(required)s 
/></td></tr>
-<tr><th><label for="id_tags">Tags:</label></th><td><input type="text" 
name="tags" value="&quot;has,comma&quot;, delicious, green, red, yummy" 
id="id_tags" %(required)s /><br />%(help_start)sA comma-separated list of 
tags.%(help_stop)s</td></tr>""",
-        )
+        if DJANGO_VERSION >= (5, 0):
+            self.assertFormRenders(
+                f,
+                """<div><label for="id_name">Name:</label><input id="id_name" 
type="text" name="name" value="apple" maxlength="50" %(required)s /></div>
+    <div><label for="id_tags">Tags:</label>%(help_start)sA comma-separated 
list of tags.%(help_stop)s<input type="text" name="tags" 
value="&quot;has,comma&quot;, delicious, green, red, yummy" id="id_tags" 
%(required)s /></div>""",
+            )
+        else:
+            self.assertFormRenders(
+                f,
+                """<tr><th><label for="id_name">Name:</label></th><td><input 
id="id_name" type="text" name="name" value="apple" maxlength="50" %(required)s 
/></td></tr>
+    <tr><th><label for="id_tags">Tags:</label></th><td><input type="text" 
name="tags" value="&quot;has,comma&quot;, delicious, green, red, yummy" 
id="id_tags" %(required)s /><br />%(help_start)sA comma-separated list of 
tags.%(help_stop)s</td></tr>""",
+            )
 
         apple.tags.add("has space")
         f = self.form_class(instance=apple)
-        self.assertFormRenders(
-            f,
-            """<tr><th><label for="id_name">Name:</label></th><td><input 
id="id_name" type="text" name="name" value="apple" maxlength="50" %(required)s 
/></td></tr>
-<tr><th><label for="id_tags">Tags:</label></th><td><input type="text" 
name="tags" value="&quot;has space&quot;, &quot;has,comma&quot;, delicious, 
green, red, yummy" id="id_tags" %(required)s /><br />%(help_start)sA 
comma-separated list of tags.%(help_stop)s</td></tr>""",
-        )
+        if DJANGO_VERSION >= (5, 0):
+            self.assertFormRenders(
+                f,
+                """<div><label for="id_name">Name:</label><input id="id_name" 
type="text" name="name" value="apple" maxlength="50" %(required)s /></div>
+    <div><label for="id_tags">Tags:</label>%(help_start)sA comma-separated 
list of tags.%(help_stop)s<input type="text" name="tags" value="&quot;has 
space&quot;, &quot;has,comma&quot;, delicious, green, red, yummy" id="id_tags" 
%(required)s /></div>""",
+            )
+        else:
+            self.assertFormRenders(
+                f,
+                """<tr><th><label for="id_name">Name:</label></th><td><input 
id="id_name" type="text" name="name" value="apple" maxlength="50" %(required)s 
/></td></tr>
+    <tr><th><label for="id_tags">Tags:</label></th><td><input type="text" 
name="tags" value="&quot;has space&quot;, &quot;has,comma&quot;, delicious, 
green, red, yummy" id="id_tags" %(required)s /><br />%(help_start)sA 
comma-separated list of tags.%(help_stop)s</td></tr>""",
+            )
 
     def test_formfield(self):
         tm = TaggableManager(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/django-taggit-3.1.0/tox.ini 
new/django-taggit-4.0.0/tox.ini
--- old/django-taggit-3.1.0/tox.ini     2022-11-18 05:56:41.000000000 +0100
+++ new/django-taggit-4.0.0/tox.ini     2023-05-04 04:12:10.000000000 +0200
@@ -4,14 +4,13 @@
     black
     flake8
     isort
-    py{36,37,38,39,310}-dj32
-    py{38,39,310}-dj40
-    py{38,39,310,311}-dj{41,main}
+    py{37,38,39,310}-dj32
+    py{38,39,310,311}-dj{41,42}
+    py{310,311}-djmain
     docs
 
 [gh-actions]
 python =
-    3.6: py36
     3.7: py37
     3.8: py38, black, flake8, isort
     3.9: py39
@@ -21,8 +20,8 @@
 [testenv]
 deps =
     dj32: Django>=3.2,<3.3
-    dj40: Django>=4.0,<4.1
     dj41: Django>=4.1,<4.2
+    dj42: Django>=4.2,<5.0
     djmain: https://github.com/django/django/archive/main.tar.gz
     coverage
     djangorestframework
@@ -39,7 +38,7 @@
 basepython = python3
 skip_install = true
 deps = black
-commands = black --target-version=py36 --check --diff .
+commands = black --target-version=py37 --check --diff .
 
 [testenv:flake8]
 basepython = python3

Reply via email to