File update-tests.patch of Package python-django-treebeard

From 868ba56198c456ce3d5f3333329304beaa90e184 Mon Sep 17 00:00:00 2001
From: Samir Shah <solaris.smoke@gmail.com>
Date: Sat, 24 Dec 2022 05:21:12 +0300
Subject: [PATCH] Update supported versions and test matrix.

---
 docs/source/tests.rst             |   11 +++----
 setup.py                          |   13 ++++----
 treebeard/__init__.py             |    2 -
 treebeard/tests/settings.py       |    3 --
 treebeard/tests/test_treebeard.py |   57 ++++++++++++++++++++++----------------
 5 files changed, 47 insertions(+), 39 deletions(-)
 delete mode 100644 .travis.yml

--- a/docs/source/tests.rst
+++ b/docs/source/tests.rst
@@ -41,18 +41,17 @@ tox
 ``django-treebeard`` uses `tox`_ to run the test suite in all the supported
 environments - permutations of:
 
-  - Python 3.6, 3.7 and 3.8
-  - Django 2.2, 3.0 and 3.1
+  - Python 3.8 - 3.11
+  - Django 3.2, 4.0 and 4.1
   - Sqlite, MySQL and PostgreSQL
 
-This means that the test suite will run 24 times to test every
-environment supported by ``django-treebeard``. This takes a long time.
-If you want to test only one or a few environments, please use the `-e`
+This means that there are a lot of permutations, which takes a long time.
+If you want to test only one or a few environments, use the `-e`
 option in `tox`_, like:
 
 .. code-block:: console
 
-    $ tox -e py36-dj22-pgsql
+    $ tox -e py39-dj32-postgres
 
 
 .. _pytest: http://pytest.org/
--- a/setup.py
+++ b/setup.py
@@ -20,7 +20,7 @@ setup_args = dict(
     long_description=long_description,
     long_description_content_type='text/markdown',
     python_requires='>=3.6',
-    install_requires=['Django>=2.2'],
+    install_requires=['Django>=3.2'],
     tests_require=[
         'pytest-django>=4.0,<5.0',
 
@@ -34,13 +34,14 @@ setup_args = dict(
         'License :: OSI Approved :: Apache Software License',
         'Environment :: Web Environment',
         'Framework :: Django',
-        'Framework :: Django :: 2.2',
-        'Framework :: Django :: 3.0',
-        'Framework :: Django :: 3.1',
+        'Framework :: Django :: 3.2',
+        'Framework :: Django :: 4.0',
+        'Framework :: Django :: 4.1',
         'Programming Language :: Python',
-        'Programming Language :: Python :: 3.6',
-        'Programming Language :: Python :: 3.7',
         'Programming Language :: Python :: 3.8',
+        'Programming Language :: Python :: 3.9',
+        'Programming Language :: Python :: 3.10',
+        'Programming Language :: Python :: 3.11',
         'Operating System :: OS Independent',
         'Topic :: Software Development :: Libraries',
         'Topic :: Utilities'])
--- a/treebeard/__init__.py
+++ b/treebeard/__init__.py
@@ -7,7 +7,7 @@ Release logic:
  3. git commit -m 'Bump to <version>'
  4. git tag <version>
  5. git push
- 6. assure that all tests pass on https://travis-ci.org/django-treebeard/django-treebeard/builds/
+ 6. ensure that all tests pass on Github Actions
  7. git push --tags
  8. pip install --upgrade pip wheel twine
  9. python setup.py clean --all
--- a/treebeard/tests/settings.py
+++ b/treebeard/tests/settings.py
@@ -38,7 +38,7 @@ def get_db_conf():
         }
     elif database_engine == "mssql":
         return {
-            'ENGINE': 'sql_server.pyodbc',
+            'ENGINE': 'mssql',
             'NAME': 'master',
             'USER': 'sa',
             'PASSWORD': 'Password12!',
@@ -46,7 +46,6 @@ def get_db_conf():
             'PORT': '',
             'OPTIONS': {
                 'driver': 'SQL Server Native Client 11.0',
-                'MARS_Connection': 'True',
             },
         }
 
--- a/treebeard/tests/test_treebeard.py
+++ b/treebeard/tests/test_treebeard.py
@@ -15,6 +15,7 @@ from django.test import TestCase
 from django.test.client import RequestFactory
 from django.templatetags.static import static
 from django.contrib.admin.options import TO_FIELD_VAR
+from django import VERSION as DJANGO_VERSION
 
 import pytest
 
@@ -140,6 +141,14 @@ def mpm2muser_model(request):
     return request.param
 
 
+# Compat helper, and be dropped after Django 3.2 is dropped
+def get_changelist_args(*args):
+    new_args = list(args)
+    if DJANGO_VERSION > (4,):
+        new_args.append("")     # New search_help_text arg
+    return new_args
+
+
 class TestTreeBase(object):
     def got(self, model):
         if model in [models.NS_TestNode, models.NS_TestNode_Proxy]:
@@ -2603,7 +2612,7 @@ class TestAdminTree(TestNonEmptyTree):
         m = admin_class(model, site)
         list_display = m.get_list_display(request)
         list_display_links = m.get_list_display_links(request, list_display)
-        cl = ChangeList(
+        cl = ChangeList(*get_changelist_args(
             request,
             model,
             list_display,
@@ -2616,8 +2625,8 @@ class TestAdminTree(TestNonEmptyTree):
             m.list_max_show_all,
             m.list_editable,
             m,
-            None,
-        )
+            [],
+        ))
         cl.formset = None
         context = Context({"cl": cl, "request": request})
         table_output = self.template.render(context)
@@ -2652,7 +2661,7 @@ class TestAdminTree(TestNonEmptyTree):
         m = UnicodeModelAdmin(model, site)
         list_display = m.get_list_display(request)
         list_display_links = m.get_list_display_links(request, list_display)
-        cl = ChangeList(
+        cl = ChangeList(*get_changelist_args(
             request,
             model,
             list_display,
@@ -2665,8 +2674,8 @@ class TestAdminTree(TestNonEmptyTree):
             m.list_max_show_all,
             m.list_editable,
             m,
-            None,
-        )
+            [],
+        ))
         cl.formset = None
         context = Context({"cl": cl, "request": request})
         table_output = self.template.render(context)
@@ -2693,7 +2702,7 @@ class TestAdminTree(TestNonEmptyTree):
         m = admin_class(model, site)
         list_display = m.get_list_display(request)
         list_display_links = m.get_list_display_links(request, list_display)
-        cl = ChangeList(
+        cl = ChangeList(*get_changelist_args(
             request,
             model,
             list_display,
@@ -2706,8 +2715,8 @@ class TestAdminTree(TestNonEmptyTree):
             m.list_max_show_all,
             m.list_editable,
             m,
-            None,
-        )
+            [],
+        ))
         cl.formset = None
         context = Context({"cl": cl, "request": request})
         table_output = self.template.render(context)
@@ -2719,7 +2728,7 @@ class TestAdminTree(TestNonEmptyTree):
         request.user = AnonymousUser()
         list_display = m.get_list_display(request)
         list_display_links = m.get_list_display_links(request, list_display)
-        cl = ChangeList(
+        cl = ChangeList(*get_changelist_args(
             request,
             model,
             list_display,
@@ -2732,8 +2741,8 @@ class TestAdminTree(TestNonEmptyTree):
             m.list_max_show_all,
             m.list_editable,
             m,
-            None,
-        )
+            [],
+        ))
         cl.formset = None
         context = Context({"cl": cl, "request": request})
         table_output = self.template.render(context)
@@ -2745,7 +2754,7 @@ class TestAdminTree(TestNonEmptyTree):
         request.user = AnonymousUser()
         list_display = m.get_list_display(request)
         list_display_links = m.get_list_display_links(request, list_display)
-        cl = ChangeList(
+        cl = ChangeList(*get_changelist_args(
             request,
             model,
             list_display,
@@ -2758,8 +2767,8 @@ class TestAdminTree(TestNonEmptyTree):
             m.list_max_show_all,
             m.list_editable,
             m,
-            None,
-        )
+            [],
+        ))
         cl.formset = None
         context = Context({"cl": cl, "request": request})
         table_output = self.template.render(context)
@@ -2788,7 +2797,7 @@ class TestAdminTreeList(TestNonEmptyTree
         m = admin_class(model, site)
         list_display = m.get_list_display(request)
         list_display_links = m.get_list_display_links(request, list_display)
-        cl = ChangeList(
+        cl = ChangeList(*get_changelist_args(
             request,
             model,
             list_display,
@@ -2801,8 +2810,8 @@ class TestAdminTreeList(TestNonEmptyTree
             m.list_max_show_all,
             m.list_editable,
             m,
-            None,
-        )
+            [],
+        ))
         cl.formset = None
         context = Context({"cl": cl, "request": request})
         table_output = self.template.render(context)
@@ -2821,7 +2830,7 @@ class TestAdminTreeList(TestNonEmptyTree
         m = admin_class(model, site)
         list_display = m.get_list_display(request)
         list_display_links = m.get_list_display_links(request, list_display)
-        cl = ChangeList(
+        cl = ChangeList(*get_changelist_args(
             request,
             model,
             list_display,
@@ -2834,8 +2843,8 @@ class TestAdminTreeList(TestNonEmptyTree
             m.list_max_show_all,
             m.list_editable,
             m,
-            None,
-        )
+            [],
+        ))
         cl.formset = None
         context = Context({"cl": cl, "request": request, "action_form": True})
         table_output = self.template.render(context)
@@ -2864,7 +2873,7 @@ class TestAdminTreeList(TestNonEmptyTree
         m = admin_class(model, site)
         list_display = m.get_list_display(request)
         list_display_links = m.get_list_display_links(request, list_display)
-        cl = ChangeList(
+        cl = ChangeList(*get_changelist_args(
             request,
             model,
             list_display,
@@ -2877,8 +2886,8 @@ class TestAdminTreeList(TestNonEmptyTree
             m.list_max_show_all,
             m.list_editable,
             m,
-            None,
-        )
+            [],
+        ))
         cl.formset = None
         context = Context({"cl": cl, "request": request})
         table_output = self.template.render(context)
openSUSE Build Service is sponsored by