diff --git a/.travis.yml b/.travis.yml index 6c7e81e..06eaba5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -34,8 +34,8 @@ matrix: env: TOXENV=py36-django22-wagtail26 - python: 3.6 env: TOXENV=py36-django22-wagtail26-geoip2 - - python: 3.6 - env: TOXENV=py36-django111-wagtail22 + # - python: 3.6 + # env: TOXENV=py36-django111-wagtail22 install: - pip install tox codecov diff --git a/setup.py b/setup.py index 84879e9..aaaa967 100644 --- a/setup.py +++ b/setup.py @@ -16,7 +16,7 @@ tests_require = [ 'flake8', 'freezegun==0.3.8', 'pytest-cov==2.5.1', - 'pytest-django==3.1.2', + 'pytest-django==4.1.0', 'pytest-pythonpath==0.7.2', 'pytest-sugar==0.9.1', 'pytest==6.1.2', diff --git a/tests/factories/page.py b/tests/factories/page.py index 1442eb2..177ad36 100644 --- a/tests/factories/page.py +++ b/tests/factories/page.py @@ -10,7 +10,7 @@ from wagtail_personalisation.models import PersonalisablePageMetadata try: from wagtail.core.models import Locale - class LocaleFactory(factory.django.DjangoModelFactory): + class LocaleFactory(factory.DjangoModelFactory): language_code = "en" class Meta: diff --git a/tests/fixtures.py b/tests/fixtures.py index a35e7f8..96b2f6f 100644 --- a/tests/fixtures.py +++ b/tests/fixtures.py @@ -28,14 +28,14 @@ def site(): return site -@pytest.fixture +@pytest.fixture(autouse=True) def segmented_page(site): page = ContentPageFactory(parent=site.root_page, slug='personalised') segment = SegmentFactory() return page.personalisation_metadata.copy_for_segment(segment) -@pytest.fixture() +@pytest.fixture(autouse=True) def rf(): """RequestFactory instance""" return RequestFactory() @@ -51,6 +51,6 @@ class RequestFactory(BaseRequestFactory): return request -@pytest.fixture +@pytest.fixture(autouse=True) def user(django_user_model): return django_user_model.objects.create(username='user') diff --git a/tests/settings.py b/tests/settings.py index c4e9613..51c3f1c 100644 --- a/tests/settings.py +++ b/tests/settings.py @@ -1,4 +1,5 @@ import os +from importlib.util import find_spec DATABASES = { 'default': { @@ -58,10 +59,14 @@ MIDDLEWARE = ( 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', '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 = ( 'wagtail_personalisation', diff --git a/tests/unit/test_models.py b/tests/unit/test_models.py index a641bea..e15571a 100644 --- a/tests/unit/test_models.py +++ b/tests/unit/test_models.py @@ -31,11 +31,6 @@ def test_metadata_page_has_variants(segmented_page): @pytest.mark.django_db def test_content_page_model(): - try: - from tests.factories.page import LocaleFactory - LocaleFactory() - except ImportError: - pass page = ContentPageFactory() qs = models.ContentPage.objects.all() assert page in qs @@ -81,5 +76,8 @@ def test_sitemap_generation_for_variants_is_disabled(segmented_page): @pytest.mark.django_db def test_segment_edit_view(site, client, django_user_model): 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" diff --git a/tests/unit/test_utils.py b/tests/unit/test_utils.py index 75ae92c..42c0d0f 100644 --- a/tests/unit/test_utils.py +++ b/tests/unit/test_utils.py @@ -18,8 +18,6 @@ except ImportError: @pytest.fixture def rootpage(): - if locale_factory: - LocaleFactory() 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 ''' - if locale_factory: - LocaleFactory() for i in range(5): page = ContentPageFactory(path="/" + str(i), depth=0, url_path="/", title="Hoi " + str(i)) page.save() @@ -98,8 +94,6 @@ def test_exclude_variants_with_pages_querysets_not_canonical(): Test that excludes variant works for querysets with personalisation_metadata canonical False ''' - if locale_factory: - LocaleFactory() for i in range(5): page = ContentPageFactory(path="/" + str(i), depth=0, url_path="/", title="Hoi " + str(i)) 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 ''' - if locale_factory: - LocaleFactory() for i in range(5): page = ContentPageFactory(path="/" + str(i), depth=0, url_path="/", title="Hoi " + str(i)) page.save() diff --git a/tests/unit/test_views.py b/tests/unit/test_views.py index 8008de6..f70116b 100644 --- a/tests/unit/test_views.py +++ b/tests/unit/test_views.py @@ -106,5 +106,5 @@ def test_segment_delete_view_raises_permission_denied(rf, segmented_page, user): ) view.request = request message = 'User have no permission to delete variant page objects.' - with pytest.raises(PermissionDenied, message=message): + with pytest.raises(PermissionDenied): view.delete_instance() diff --git a/tox.ini b/tox.ini index 943b654..da84883 100644 --- a/tox.ini +++ b/tox.ini @@ -17,7 +17,7 @@ deps = wagtail25: wagtail>=2.5,<2.6 wagtail26: wagtail>=2.6,<2.7 geoip2: geoip2 - django111: django>=1.11,<1.12 + ; django111: django>=1.11,<1.12 [testenv:coverage-report] basepython = python3.6