7

Check backward compatibility with tox

This commit is contained in:
Marcel Hekking
2020-11-25 15:50:52 +01:00
parent ffd839159b
commit 7101b63122
9 changed files with 20 additions and 25 deletions

View File

@ -34,8 +34,8 @@ matrix:
env: TOXENV=py36-django22-wagtail26 env: TOXENV=py36-django22-wagtail26
- python: 3.6 - python: 3.6
env: TOXENV=py36-django22-wagtail26-geoip2 env: TOXENV=py36-django22-wagtail26-geoip2
- python: 3.6 # - python: 3.6
env: TOXENV=py36-django111-wagtail22 # env: TOXENV=py36-django111-wagtail22
install: install:
- pip install tox codecov - pip install tox codecov

View File

@ -16,7 +16,7 @@ tests_require = [
'flake8', 'flake8',
'freezegun==0.3.8', 'freezegun==0.3.8',
'pytest-cov==2.5.1', 'pytest-cov==2.5.1',
'pytest-django==3.1.2', 'pytest-django==4.1.0',
'pytest-pythonpath==0.7.2', 'pytest-pythonpath==0.7.2',
'pytest-sugar==0.9.1', 'pytest-sugar==0.9.1',
'pytest==6.1.2', 'pytest==6.1.2',

View File

@ -10,7 +10,7 @@ from wagtail_personalisation.models import PersonalisablePageMetadata
try: try:
from wagtail.core.models import Locale from wagtail.core.models import Locale
class LocaleFactory(factory.django.DjangoModelFactory): class LocaleFactory(factory.DjangoModelFactory):
language_code = "en" language_code = "en"
class Meta: class Meta:

View File

@ -28,14 +28,14 @@ def site():
return site return site
@pytest.fixture @pytest.fixture(autouse=True)
def segmented_page(site): def segmented_page(site):
page = ContentPageFactory(parent=site.root_page, slug='personalised') page = ContentPageFactory(parent=site.root_page, slug='personalised')
segment = SegmentFactory() segment = SegmentFactory()
return page.personalisation_metadata.copy_for_segment(segment) return page.personalisation_metadata.copy_for_segment(segment)
@pytest.fixture() @pytest.fixture(autouse=True)
def rf(): def rf():
"""RequestFactory instance""" """RequestFactory instance"""
return RequestFactory() return RequestFactory()
@ -51,6 +51,6 @@ class RequestFactory(BaseRequestFactory):
return request return request
@pytest.fixture @pytest.fixture(autouse=True)
def user(django_user_model): def user(django_user_model):
return django_user_model.objects.create(username='user') return django_user_model.objects.create(username='user')

View File

@ -1,4 +1,5 @@
import os import os
from importlib.util import find_spec
DATABASES = { DATABASES = {
'default': { 'default': {
@ -58,10 +59,14 @@ MIDDLEWARE = (
'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware', 'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware',
'wagtail.contrib.legacy.sitemiddleware.SiteMiddleware',
) )
if find_spec('wagtail.contrib.legacy'):
MIDDLEWARE += ('wagtail.contrib.legacy.sitemiddleware.SiteMiddleware',)
else:
MIDDLEWARE += ('wagtail.core.middleware.SiteMiddleware', )
INSTALLED_APPS = ( INSTALLED_APPS = (
'wagtail_personalisation', 'wagtail_personalisation',

View File

@ -31,11 +31,6 @@ 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():
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
@ -81,5 +76,8 @@ def test_sitemap_generation_for_variants_is_disabled(segmented_page):
@pytest.mark.django_db @pytest.mark.django_db
def test_segment_edit_view(site, client, django_user_model): def test_segment_edit_view(site, client, django_user_model):
test_segment = SegmentFactory() test_segment = SegmentFactory()
new_panel = test_segment.panels[1].children[0].bind_to(model=Segment) try:
new_panel = test_segment.panels[1].children[0].bind_to(model=Segment)
except AttributeError:
new_panel = test_segment.panels[1].children[0].bind_to_model(Segment)
assert new_panel.related.name == "wagtail_personalisation_timerules" assert new_panel.related.name == "wagtail_personalisation_timerules"

View File

@ -18,8 +18,6 @@ except ImportError:
@pytest.fixture @pytest.fixture
def rootpage(): def rootpage():
if locale_factory:
LocaleFactory()
return ContentPageFactory(parent=None, path='/', depth=0, title='root') return ContentPageFactory(parent=None, path='/', depth=0, title='root')
@ -81,8 +79,6 @@ def test_exclude_variants_with_pages_querysets():
''' '''
Test that excludes variant works for querysets Test that excludes variant works for querysets
''' '''
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()
@ -98,8 +94,6 @@ 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
''' '''
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()
@ -120,8 +114,6 @@ 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
''' '''
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()

View File

@ -106,5 +106,5 @@ def test_segment_delete_view_raises_permission_denied(rf, segmented_page, user):
) )
view.request = request view.request = request
message = 'User have no permission to delete variant page objects.' message = 'User have no permission to delete variant page objects.'
with pytest.raises(PermissionDenied, message=message): with pytest.raises(PermissionDenied):
view.delete_instance() view.delete_instance()

View File

@ -17,7 +17,7 @@ deps =
wagtail25: wagtail>=2.5,<2.6 wagtail25: wagtail>=2.5,<2.6
wagtail26: wagtail>=2.6,<2.7 wagtail26: wagtail>=2.6,<2.7
geoip2: geoip2 geoip2: geoip2
django111: django>=1.11,<1.12 ; django111: django>=1.11,<1.12
[testenv:coverage-report] [testenv:coverage-report]
basepython = python3.6 basepython = python3.6