Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 16 additions & 13 deletions tests/test_admin.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,13 @@
from importlib import reload
from unittest import skipIf

from cms import __version__ as cms_version
from cms.test_utils.testcases import CMSTestCase
from cms.utils import get_current_site
from django import __version__ as django_version
from django.contrib import admin
from django.contrib.sites.models import Site
from django.shortcuts import reverse
from django.test import RequestFactory, override_settings
from djangocms_versioning.admin import ExtendedIndicatorVersionAdminMixin

try:
from djangocms_versioning.models import Version
Expand Down Expand Up @@ -86,20 +85,29 @@ def test_admin_list_display_without_versioning(self):
self.assertEqual(self.snippet_admin.__class__.__bases__, (admin.ModelAdmin,))
self.assertEqual(list_display, ("slug", "name"))

@skipIf(not cms_version.startswith("4.0."), "Django CMS 4 required")
@override_settings(DJANGOCMS_SNIPPET_VERSIONING_ENABLED=True)
def test_admin_list_display_with_versioning(self):
"""
With versioning enabled, list_display should be populated with both versioning related items, and the
list actions items
"""
from djangocms_versioning.admin import ExtendedVersionAdminMixin

list_display = self.snippet_admin.get_list_display(self.snippet_admin_request)

# Mixins should always come first in the class bases
self.assertEqual(self.snippet_admin.__class__.__bases__, (ExtendedVersionAdminMixin, admin.ModelAdmin))
self.assertEqual(list_display[:-1], ("name", "get_author", "get_modified_date", "get_versioning_state"))
self.assertEqual(
self.snippet_admin.__class__.__bases__,
(ExtendedIndicatorVersionAdminMixin, admin.ModelAdmin),
)

# Verify static fields
self.assertEqual(list_display[:3], ("name", "get_author", "get_modified_date"))

# Verify dynamic indicator
indicator_field = list_display[3]
self.assertTrue(callable(indicator_field), f"{indicator_field} is not callable")
self.assertEqual(indicator_field.__name__, "indicator")

# Verify actions
self.assertEqual(list_display[-1].short_description.lower(), "actions")

def test_admin_uses_form(self):
Expand All @@ -109,7 +117,6 @@ def test_admin_uses_form(self):
"""
self.assertEqual(self.snippet_admin.form, SnippetForm)

@skipIf(cms_version < "4", "Django CMS 4 required")
@override_settings(DJANGOCMS_SNIPPET_VERSIONING_ENABLED=True)
def test_admin_delete_button_disabled_versioning_enabled(self):
"""
Expand Down Expand Up @@ -152,7 +159,6 @@ def test_admin_delete_button_available_versioning_disabled(self):
response, '<a href="/en/admin/djangocms_snippet/snippet/1/delete/" class="deletelink">Delete</a>'
)

@skipIf(cms_version < "4", "Django CMS 4 required")
@override_settings(DJANGOCMS_SNIPPET_VERSIONING_ENABLED=True)
def test_admin_delete_endpoint_inaccessible_versioning_enabled(self):
"""
Expand Down Expand Up @@ -196,7 +202,6 @@ def setUp(self):
)
self.snippet_version = Version.objects.create(content=self.snippet, created_by=self.superuser)

@skipIf(cms_version < "4", "Django CMS 4 required")
@override_settings(DJANGOCMS_SNIPPET_VERSIONING_ENABLED=True)
def test_admin_form_save_method(self):
with self.login_user_context(self.superuser):
Expand All @@ -214,7 +219,6 @@ def test_admin_form_save_method(self):
self.assertEqual(Snippet._base_manager.count(), 2)
self.assertEqual(SnippetGrouper._base_manager.count(), 2)

@skipIf(cms_version < "4", "Django CMS 4 required")
@override_settings(DJANGOCMS_SNIPPET_VERSIONING_ENABLED=True)
def test_admin_form_edit_when_locked(self):
"""
Expand All @@ -235,7 +239,7 @@ def test_admin_form_edit_when_locked(self):
self.assertEqual(Snippet.objects.count(), 1)

@override_settings(DJANGOCMS_SNIPPET_VERSIONING_ENABLED=False)
def test_slug_colomn_should_hyperlinked_with_versioning_disabled(self):
def test_slug_column_should_hyperlinked_with_versioning_disabled(self):
"""
Slug column should be visible and hyperlinked when versioning is disabled
"""
Expand All @@ -249,7 +253,6 @@ def test_slug_colomn_should_hyperlinked_with_versioning_disabled(self):
'<th class="field-slug"><a href="/en/admin/djangocms_snippet/snippet/1/change/">test-snippet</a></th>',
)

@skipIf(cms_version < "4", "Django CMS 4 required")
@override_settings(DJANGOCMS_SNIPPET_VERSIONING_ENABLED=True)
def test_name_colomn_should_not_be_hyperlinked_with_versioning_enabled(self):
"""
Expand Down
4 changes: 0 additions & 4 deletions tests/test_config.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,3 @@
from unittest import skipIf

from cms import __version__ as cms_version
from cms.test_utils.testcases import CMSTestCase
from django.apps import apps

Expand All @@ -9,7 +6,6 @@
from .utils.factories import SnippetWithVersionFactory


@skipIf(cms_version < "4", "Django CMS 4 required")
class VersioningConfigTestCase(CMSTestCase):
def test_snippet_copy_method(self):
"""
Expand Down
4 changes: 0 additions & 4 deletions tests/test_forms.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
from importlib import reload
from unittest import skipIf

from cms import __version__ as cms_version
from cms.test_utils.testcases import CMSTestCase
from django.test import override_settings

Expand Down Expand Up @@ -65,7 +63,6 @@ def test_snippet_form_doesnt_create_grouper_or_snippet_with_no_commit(self):
self.assertEqual(SnippetGrouper.objects.count(), 1)
self.assertEqual(Snippet._base_manager.count(), 1)

@skipIf(cms_version < "4", "Django CMS 4 required")
@override_settings(DJANGOCMS_SNIPPET_VERSIONING_ENABLED=True)
def test_snippet_form_adds_to_existing_grouper_with_versioning(self):
"""
Expand Down Expand Up @@ -138,7 +135,6 @@ def test_snippet_form_versioning_enabled(self):

self.assertDictEqual(new_form.errors, {"slug": ["A Snippet with this slug already exists"]})

@skipIf(cms_version < "4", "Django CMS 4 required")
def test_snippet_form_validation_multiple_version_states_in_grouper(self):
"""
Snippet forms should be valid regardless of the versions, or states which already exist within its grouper.
Expand Down
3 changes: 0 additions & 3 deletions tests/test_migrations.py
Original file line number Diff line number Diff line change
@@ -1,15 +1,12 @@
# original from
# http://tech.octopus.energy/news/2016/01/21/testing-for-missing-migrations-in-django.html
from io import StringIO
from unittest import skipIf

from cms import __version__ as cms_version
from django.core.management import call_command
from django.test import TestCase, override_settings


class MigrationTestCase(TestCase):
@skipIf(cms_version.startswith("4.0."), "This test fails on django-cms 4.0")
@override_settings(MIGRATION_MODULES={})
def test_for_missing_migrations(self):
output = StringIO()
Expand Down
2 changes: 0 additions & 2 deletions tests/test_plugins.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import datetime
from unittest import skipIf

from cms import __version__ as cms_version
from cms.api import add_plugin, create_page
Expand Down Expand Up @@ -141,7 +140,6 @@ def test_failing_template_rendering(self):
self.assertContains(response, "Template some_template does not exist")


@skipIf(cms_version < "4", "Django CMS 4 required")
class SnippetPluginVersioningRenderTestCase(CMSTestCase):
def setUp(self):
from cms.models import PageContent
Expand Down