Skip to content

Commit

Permalink
Add test for latest_content issue in core
Browse files Browse the repository at this point in the history
  • Loading branch information
fsbraun committed Jul 26, 2024
1 parent 3d50f7a commit d42c005
Showing 1 changed file with 45 additions and 0 deletions.
45 changes: 45 additions & 0 deletions tests/test_integration_with_core.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,12 @@
from unittest import skipIf

from cms import __version__ as cms_version
from cms.test_utils.testcases import CMSTestCase
from cms.toolbar.toolbar import CMSToolbar
from cms.utils.urlutils import admin_reverse
from django.template import Context

from djangocms_versioning import constants
from djangocms_versioning.plugin_rendering import VersionContentRenderer
from djangocms_versioning.test_utils.factories import (
PageFactory,
Expand Down Expand Up @@ -256,3 +261,43 @@ def test_success_url_for_cms_wizard(self):
poll_wizard.get_success_url(version.content),
version.content.get_absolute_url(),
)


class AdminManagerIntegrationTestCase(CMSTestCase):
def setUp(self):
self.page = PageFactory(node__depth=1) if TreeNode else PageFactory(depth=1)
self.en_version = PageVersionFactory(
content__page=self.page,
content__language="en",
state=constants.UNPUBLISHED,
)
self.fr_version = PageVersionFactory(
content__page=self.page,
content__language="fr",
state=constants.ARCHIVED,
)
self.page.languages = "en,fr"
self.page.save()


@skipIf(cms_version < "4.1.3", "Bug only fixed in django CMS 4.1.3")
def test_get_admin_url_for_language(self):
"""Regression fixed that made unpublished and archived versions invisivle to get_admin_url_for_language
template tag. See: https://github.com/django-cms/django-cms/pull/7967"""
from django.template import Template

# Test English page with unpublished version
context = Context({"page": self.page})
template = Template("{% load cms_admin %}{% get_admin_url_for_language page 'en' %}")

result = template.render(context)

self.assertIn(f"/admin/cms/pagecontent/{self.en_version.content.pk}/", result)

# Test French page with archived version
template = Template("{% load cms_admin %}{% get_admin_url_for_language page 'fr' %}")

result = template.render(context)

self.assertIn(f"/admin/cms/pagecontent/{self.fr_version.content.pk}/", result)

0 comments on commit d42c005

Please sign in to comment.