8

Make changes backwards compatible

This commit is contained in:
Marcel Hekking
2020-11-25 12:08:42 +01:00
parent d074ef85b9
commit ffd839159b
6 changed files with 47 additions and 17 deletions

View File

@@ -19,7 +19,7 @@ tests_require = [
'pytest-django==3.1.2', 'pytest-django==3.1.2',
'pytest-pythonpath==0.7.2', 'pytest-pythonpath==0.7.2',
'pytest-sugar==0.9.1', 'pytest-sugar==0.9.1',
'pytest==3.4.2', 'pytest==6.1.2',
'wagtail_factories==1.1.0', 'wagtail_factories==1.1.0',
'pytest-mock==1.6.3', 'pytest-mock==1.6.3',
] ]

View File

@@ -11,7 +11,12 @@ from django.utils.safestring import mark_safe
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from wagtail.admin import messages from wagtail.admin import messages
from wagtail.admin.site_summary import PagesSummaryItem, SummaryItem from wagtail.admin.site_summary import PagesSummaryItem, SummaryItem
from wagtail.admin.views.pages.utils import get_valid_next_url_from_request
try:
from wagtail.admin.views.pages.utils import get_valid_next_url_from_request
except ModuleNotFoundError:
from wagtail.admin.views.pages import get_valid_next_url_from_request # noqa
from wagtail.admin.widgets import Button, ButtonWithDropdownFromHook from wagtail.admin.widgets import Button, ButtonWithDropdownFromHook
from wagtail.core import hooks from wagtail.core import hooks
from wagtail.core.models import Page from wagtail.core.models import Page
@@ -23,6 +28,8 @@ from wagtail_personalisation.models import PersonalisablePageMetadata
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
@hooks.register('register_admin_urls') @hooks.register('register_admin_urls')
def register_admin_urls(): def register_admin_urls():
"""Adds the administration urls for the personalisation apps.""" """Adds the administration urls for the personalisation apps."""

View File

@@ -2,18 +2,21 @@ from __future__ import absolute_import, unicode_literals
import factory import factory
from django.utils.text import slugify from django.utils.text import slugify
from wagtail.core.models import Locale
from wagtail_factories.factories import PageFactory from wagtail_factories.factories import PageFactory
from tests.site.pages import models from tests.site.pages import models
from wagtail_personalisation.models import PersonalisablePageMetadata from wagtail_personalisation.models import PersonalisablePageMetadata
try:
from wagtail.core.models import Locale
class LocaleFactory(factory.django.DjangoModelFactory): class LocaleFactory(factory.django.DjangoModelFactory):
language_code = "en" language_code = "en"
class Meta: class Meta:
model = Locale model = Locale
except ImportError:
pass
class ContentPageFactory(PageFactory): class ContentPageFactory(PageFactory):
parent = None parent = None

View File

@@ -4,14 +4,18 @@ from django.contrib.messages.storage.fallback import FallbackStorage
from django.contrib.sessions.backends.db import SessionStore from django.contrib.sessions.backends.db import SessionStore
from django.test.client import RequestFactory as BaseRequestFactory from django.test.client import RequestFactory as BaseRequestFactory
from tests.factories.page import ContentPageFactory, LocaleFactory, RegularPageFactory from tests.factories.page import ContentPageFactory, RegularPageFactory
from tests.factories.segment import SegmentFactory from tests.factories.segment import SegmentFactory
from tests.factories.site import SiteFactory from tests.factories.site import SiteFactory
@pytest.fixture(scope='function') @pytest.fixture(scope='function')
def site(): def site():
LocaleFactory() try:
from tests.factories.page import LocaleFactory
LocaleFactory()
except ImportError:
pass
root_page = ContentPageFactory(parent=None, slug='') root_page = ContentPageFactory(parent=None, slug='')
site = SiteFactory(is_default_site=True, root_page=root_page) site = SiteFactory(is_default_site=True, root_page=root_page)

View File

@@ -3,7 +3,7 @@ import datetime
import pytest import pytest
from django.db.models import ProtectedError from django.db.models import ProtectedError
from tests.factories.page import ContentPageFactory, LocaleFactory from tests.factories.page import ContentPageFactory
from tests.factories.segment import SegmentFactory from tests.factories.segment import SegmentFactory
from tests.site.pages import models from tests.site.pages import models
from wagtail_personalisation.models import PersonalisablePageMetadata, Segment from wagtail_personalisation.models import PersonalisablePageMetadata, Segment
@@ -31,7 +31,11 @@ def test_metadata_page_has_variants(segmented_page):
@pytest.mark.django_db @pytest.mark.django_db
def test_content_page_model(): def test_content_page_model():
LocaleFactory() try:
from tests.factories.page import LocaleFactory
LocaleFactory()
except ImportError:
pass
page = ContentPageFactory() page = ContentPageFactory()
qs = models.ContentPage.objects.all() qs = models.ContentPage.objects.all()
assert page in qs assert page in qs

View File

@@ -2,15 +2,24 @@ import pytest
from django.test import override_settings from django.test import override_settings
from wagtail.core.models import Page as WagtailPage from wagtail.core.models import Page as WagtailPage
from tests.factories.page import ( from tests.factories.page import (ContentPageFactory, PersonalisablePageMetadataFactory)
ContentPageFactory, LocaleFactory, PersonalisablePageMetadataFactory)
from wagtail_personalisation.utils import ( from wagtail_personalisation.utils import (
can_delete_pages, exclude_variants, get_client_ip, impersonate_other_page) can_delete_pages, exclude_variants, get_client_ip, impersonate_other_page)
locale_factory = False
try:
from tests.factories.page import LocaleFactory
locale_factory = True
except ImportError:
pass
@pytest.fixture @pytest.fixture
def rootpage(): def rootpage():
LocaleFactory() if locale_factory:
LocaleFactory()
return ContentPageFactory(parent=None, path='/', depth=0, title='root') return ContentPageFactory(parent=None, path='/', depth=0, title='root')
@@ -72,7 +81,8 @@ def test_exclude_variants_with_pages_querysets():
''' '''
Test that excludes variant works for querysets Test that excludes variant works for querysets
''' '''
LocaleFactory() if locale_factory:
LocaleFactory()
for i in range(5): for i in range(5):
page = ContentPageFactory(path="/" + str(i), depth=0, url_path="/", title="Hoi " + str(i)) page = ContentPageFactory(path="/" + str(i), depth=0, url_path="/", title="Hoi " + str(i))
page.save() page.save()
@@ -88,7 +98,8 @@ def test_exclude_variants_with_pages_querysets_not_canonical():
Test that excludes variant works for querysets with Test that excludes variant works for querysets with
personalisation_metadata canonical False personalisation_metadata canonical False
''' '''
LocaleFactory() if locale_factory:
LocaleFactory()
for i in range(5): for i in range(5):
page = ContentPageFactory(path="/" + str(i), depth=0, url_path="/", title="Hoi " + str(i)) page = ContentPageFactory(path="/" + str(i), depth=0, url_path="/", title="Hoi " + str(i))
page.save() page.save()
@@ -109,7 +120,8 @@ def test_exclude_variants_with_pages_querysets_meta_none():
''' '''
Test that excludes variant works for querysets with meta as none Test that excludes variant works for querysets with meta as none
''' '''
LocaleFactory() if locale_factory:
LocaleFactory()
for i in range(5): for i in range(5):
page = ContentPageFactory(path="/" + str(i), depth=0, url_path="/", title="Hoi " + str(i)) page = ContentPageFactory(path="/" + str(i), depth=0, url_path="/", title="Hoi " + str(i))
page.save() page.save()