diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index d2b0a888db7..97c6ac64e83 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -16,6 +16,7 @@ jobs:
requirements-file: [
django-4.2.txt,
django-5.0.txt,
+ django-5.1.txt,
]
os: [
ubuntu-20.04,
@@ -23,10 +24,12 @@ jobs:
exclude:
- requirements-file: django-5.0.txt
python-version: 3.9
+ - requirements-file: django-5.1.txt
+ python-version: 3.9
services:
postgres:
- image: postgres:12
+ image: postgres:15
env:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
@@ -69,6 +72,7 @@ jobs:
requirements-file: [
django-4.2.txt,
django-5.0.txt,
+ django-5.1.txt,
]
os: [
ubuntu-20.04,
@@ -76,6 +80,8 @@ jobs:
exclude:
- requirements-file: django-5.0.txt
python-version: 3.9
+ - requirements-file: django-5.1.txt
+ python-version: 3.9
services:
mysql:
@@ -121,6 +127,7 @@ jobs:
requirements-file: [
django-4.2.txt,
django-5.0.txt,
+ django-5.1.txt,
]
os: [
ubuntu-20.04,
@@ -128,6 +135,8 @@ jobs:
exclude:
- requirements-file: django-5.0.txt
python-version: 3.9
+ - requirements-file: django-5.1.txt
+ python-version: 3.9
steps:
- uses: actions/checkout@v4
@@ -196,7 +205,7 @@ jobs:
services:
postgres:
- image: postgres:13
+ image: postgres:15
env:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
diff --git a/cms/test_utils/testcases.py b/cms/test_utils/testcases.py
index c970fb01e8d..8567727020c 100644
--- a/cms/test_utils/testcases.py
+++ b/cms/test_utils/testcases.py
@@ -91,8 +91,8 @@ def showWarning(message, category, filename, lineno, file=None, line=None):
class BaseCMSTestCase:
counter = 1
- def _fixture_setup(self):
- super()._fixture_setup()
+ def _pre_setup(self):
+ super()._pre_setup()
self.create_fixtures()
activate("en")
diff --git a/cms/tests/test_page_admin.py b/cms/tests/test_page_admin.py
index 72d4872e029..4449231e8d6 100644
--- a/cms/tests/test_page_admin.py
+++ b/cms/tests/test_page_admin.py
@@ -1609,6 +1609,29 @@ def test_add_page_no_redirect(self):
self.assertEqual(Page.objects.all().count(), 2)
class PermissionsTestCase(PageTestBase):
+ def assertContainsPermissions(self, response):
+ try:
+ # Django >= 5.1
+ self.assertContains(
+ response,
+ '
Page permissions
',
+ html=True,
+ )
+ except AssertionError:
+ # Django < 5.1
+ self.assertContains(response, 'Page permissions
', html=True)
+
+ def assertNotContainsPermissions(self, response):
+ try:
+ # Django >= 5.1
+ self.assertNotContains(
+ response,
+ 'Page permissions
',
+ html=True,
+ )
+ except AssertionError:
+ # Django < 5.1
+ self.assertNotContains(response, 'Page permissions
', html=True)
def _add_translation_to_page(self, page):
translation = create_page_content(
@@ -2186,7 +2209,7 @@ def test_user_can_add_page_permissions(self):
with self.login_user_context(staff_user):
response = self.client.get(endpoint)
- self.assertContains(response, 'Page permissions
', html=True)
+ self.assertContainsPermissions(response)
response = self.client.post(endpoint, data)
self.assertEqual(response.status_code, 302)
self.assertRedirects(response, endpoint)
@@ -2223,7 +2246,7 @@ def test_user_cant_add_page_permissions(self):
with self.login_user_context(staff_user):
response = self.client.get(endpoint)
- self.assertNotContains(response, 'Page permissions
', html=True)
+ self.assertNotContainsPermissions(response)
self.client.post(endpoint, data)
self.assertFalse(self._page_permission_exists(user=staff_user_2))
@@ -2265,7 +2288,7 @@ def test_user_can_edit_page_permissions(self):
with self.login_user_context(staff_user):
response = self.client.get(endpoint)
- self.assertContains(response, 'Page permissions
', html=True)
+ self.assertContainsPermissions(response)
response = self.client.post(endpoint, data)
self.assertEqual(response.status_code, 302)
self.assertRedirects(response, endpoint)
@@ -2315,7 +2338,7 @@ def test_user_cant_edit_page_permissions(self):
with self.login_user_context(staff_user):
response = self.client.get(endpoint)
- self.assertNotContains(response, 'Page permissions
', html=True)
+ self.assertNotContainsPermissions(response)
self.client.post(endpoint, data)
self.assertFalse(
self._page_permission_exists(
@@ -2357,7 +2380,7 @@ def test_user_can_delete_page_permissions(self):
with self.login_user_context(staff_user):
response = self.client.get(endpoint)
- self.assertContains(response, 'Page permissions
', html=True)
+ self.assertContainsPermissions(response)
response = self.client.post(endpoint, data)
self.assertEqual(response.status_code, 302)
self.assertRedirects(response, endpoint)
@@ -2397,7 +2420,7 @@ def test_user_cant_delete_page_permissions(self):
with self.login_user_context(staff_user):
response = self.client.get(endpoint)
- self.assertNotContains(response, 'Page permissions
', html=True)
+ self.assertNotContainsPermissions(response)
self.client.post(endpoint, data)
self.assertTrue(self._page_permission_exists(user=staff_user_2))
@@ -2431,7 +2454,7 @@ def test_user_can_add_page_view_restrictions(self):
with self.login_user_context(staff_user):
response = self.client.get(endpoint)
- self.assertContains(response, 'Page permissions
', html=True)
+ self.assertContainsPermissions(response)
response = self.client.post(endpoint, data)
self.assertEqual(response.status_code, 302)
self.assertRedirects(response, endpoint)
@@ -2468,7 +2491,7 @@ def test_user_cant_add_page_view_restrictions(self):
with self.login_user_context(staff_user):
response = self.client.get(endpoint)
- self.assertNotContains(response, 'Page permissions
', html=True)
+ self.assertNotContainsPermissions(response)
self.client.post(endpoint, data)
self.assertFalse(self._page_permission_exists(user=staff_user_2, can_view=True))
@@ -2509,7 +2532,7 @@ def test_user_can_edit_page_view_restrictions(self):
with self.login_user_context(staff_user):
response = self.client.get(endpoint)
- self.assertContains(response, 'Page permissions
', html=True)
+ self.assertContainsPermissions(response)
response = self.client.post(endpoint, data)
self.assertEqual(response.status_code, 302)
self.assertRedirects(response, endpoint)
@@ -2557,7 +2580,7 @@ def test_user_cant_edit_page_view_restrictions(self):
with self.login_user_context(staff_user):
response = self.client.get(endpoint)
- self.assertNotContains(response, 'Page permissions
', html=True)
+ self.assertNotContainsPermissions(response)
self.client.post(endpoint, data)
self.assertFalse(
self._page_permission_exists(
@@ -2601,7 +2624,7 @@ def test_user_can_delete_page_view_restrictions(self):
with self.login_user_context(staff_user):
response = self.client.get(endpoint)
- self.assertContains(response, 'Page permissions
', html=True)
+ self.assertContainsPermissions(response)
response = self.client.post(endpoint, data)
self.assertEqual(response.status_code, 302)
self.assertRedirects(response, endpoint)
@@ -2643,7 +2666,7 @@ def test_user_cant_delete_page_view_restrictions(self):
with self.login_user_context(staff_user):
response = self.client.get(endpoint)
- self.assertNotContains(response, 'Page permissions
', html=True)
+ self.assertNotContainsPermissions(response)
self.client.post(endpoint, data)
self.assertTrue(self._page_permission_exists(user=staff_user_2, can_view=True))
@@ -3630,7 +3653,7 @@ def test_user_can_add_page_permissions(self):
with self.login_user_context(staff_user):
response = self.client.get(endpoint)
- self.assertContains(response, 'Page permissions
', html=True)
+ self.assertContainsPermissions(response)
response = self.client.post(endpoint, data)
self.assertEqual(response.status_code, 302)
self.assertRedirects(response, endpoint)
@@ -3667,7 +3690,7 @@ def test_user_cant_add_page_permissions(self):
with self.login_user_context(staff_user):
response = self.client.get(endpoint)
- self.assertNotContains(response, 'Page permissions
', html=True)
+ self.assertNotContainsPermissions(response)
self.client.post(endpoint, data)
self.assertFalse(self._page_permission_exists(user=staff_user_2))
@@ -3709,7 +3732,7 @@ def test_user_can_edit_page_permissions(self):
with self.login_user_context(staff_user):
response = self.client.get(endpoint)
- self.assertContains(response, 'Page permissions
', html=True)
+ self.assertContainsPermissions(response)
response = self.client.post(endpoint, data)
self.assertEqual(response.status_code, 302)
self.assertRedirects(response, endpoint)
@@ -3759,7 +3782,7 @@ def test_user_cant_edit_page_permissions(self):
with self.login_user_context(staff_user):
response = self.client.get(endpoint)
- self.assertNotContains(response, 'Page permissions
', html=True)
+ self.assertNotContainsPermissions(response)
self.client.post(endpoint, data)
self.assertFalse(
self._page_permission_exists(
@@ -3801,7 +3824,7 @@ def test_user_can_delete_page_permissions(self):
with self.login_user_context(staff_user):
response = self.client.get(endpoint)
- self.assertContains(response, 'Page permissions
', html=True)
+ self.assertContainsPermissions(response)
response = self.client.post(endpoint, data)
self.assertEqual(response.status_code, 302)
self.assertRedirects(response, endpoint)
@@ -3841,7 +3864,7 @@ def test_user_cant_delete_page_permissions(self):
with self.login_user_context(staff_user):
response = self.client.get(endpoint)
- self.assertNotContains(response, 'Page permissions
', html=True)
+ self.assertNotContainsPermissions(response)
self.client.post(endpoint, data)
self.assertTrue(self._page_permission_exists(user=staff_user_2))
@@ -3875,7 +3898,7 @@ def test_user_can_add_page_view_restrictions(self):
with self.login_user_context(staff_user):
response = self.client.get(endpoint)
- self.assertContains(response, 'Page permissions
', html=True)
+ self.assertContainsPermissions(response)
response = self.client.post(endpoint, data)
self.assertEqual(response.status_code, 302)
self.assertRedirects(response, endpoint)
@@ -3912,7 +3935,7 @@ def test_user_cant_add_page_view_restrictions(self):
with self.login_user_context(staff_user):
response = self.client.get(endpoint)
- self.assertNotContains(response, 'Page permissions
', html=True)
+ self.assertNotContainsPermissions(response)
self.client.post(endpoint, data)
self.assertFalse(self._page_permission_exists(user=staff_user_2, can_view=True))
@@ -3953,7 +3976,7 @@ def test_user_can_edit_page_view_restrictions(self):
with self.login_user_context(staff_user):
response = self.client.get(endpoint)
- self.assertContains(response, 'Page permissions
', html=True)
+ self.assertContainsPermissions(response)
response = self.client.post(endpoint, data)
self.assertEqual(response.status_code, 302)
self.assertRedirects(response, endpoint)
@@ -4001,7 +4024,7 @@ def test_user_cant_edit_page_view_restrictions(self):
with self.login_user_context(staff_user):
response = self.client.get(endpoint)
- self.assertNotContains(response, 'Page permissions
', html=True)
+ self.assertNotContainsPermissions(response)
self.client.post(endpoint, data)
self.assertFalse(
self._page_permission_exists(
@@ -4045,7 +4068,7 @@ def test_user_can_delete_page_view_restrictions(self):
with self.login_user_context(staff_user):
response = self.client.get(endpoint)
- self.assertContains(response, 'Page permissions
', html=True)
+ self.assertContainsPermissions(response)
response = self.client.post(endpoint, data)
self.assertEqual(response.status_code, 302)
self.assertRedirects(response, endpoint)
@@ -4087,7 +4110,7 @@ def test_user_cant_delete_page_view_restrictions(self):
with self.login_user_context(staff_user):
response = self.client.get(endpoint)
- self.assertNotContains(response, 'Page permissions
', html=True)
+ self.assertNotContainsPermissions(response)
self.client.post(endpoint, data)
self.assertTrue(self._page_permission_exists(user=staff_user_2, can_view=True))
diff --git a/test_requirements/databases.txt b/test_requirements/databases.txt
index 56751b37886..83d819cb513 100644
--- a/test_requirements/databases.txt
+++ b/test_requirements/databases.txt
@@ -1,2 +1,2 @@
-psycopg2==2.9.5
+psycopg>=3.1.8
mysqlclient==2.0.3
diff --git a/test_requirements/django-5.0.txt b/test_requirements/django-5.0.txt
index aaa0b59c03b..439f96ad9a6 100644
--- a/test_requirements/django-5.0.txt
+++ b/test_requirements/django-5.0.txt
@@ -1,2 +1,2 @@
-r requirements_base.txt
-Django>=5.0a1,<5.1
+Django>=5.0,<5.1
diff --git a/test_requirements/django-5.1.txt b/test_requirements/django-5.1.txt
new file mode 100644
index 00000000000..62b070b6118
--- /dev/null
+++ b/test_requirements/django-5.1.txt
@@ -0,0 +1,2 @@
+-r requirements_base.txt
+Django>=5.1,<5.2