diff --git a/.travis.yml b/.travis.yml index 1a1e4f2..a28ac85 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,6 +4,23 @@ language: python matrix: include: + # Django 1.9, Wagtail 1.9 + - python: 2.7 + env: TOXENV=py27-django19-wagtail19 + - python: 3.5 + env: TOXENV=py35-django19-wagtail19 + - python: 3.6 + env: TOXENV=py36-django19-wagtail19 + + # Django 1.10, Wagtail 1.10 + - python: 2.7 + env: TOXENV=py27-django110-wagtail110 + - python: 3.5 + env: TOXENV=py35-django110-wagtail110 + - python: 3.6 + env: TOXENV=py36-django110-wagtail110 + + # Django 1.11, Wagtail 1.10 - python: 2.7 env: TOXENV=py27-django111-wagtail110 - python: 3.5 diff --git a/README.rst b/README.rst index e2d2043..68efdac 100644 --- a/README.rst +++ b/README.rst @@ -35,7 +35,7 @@ in the admin interface. Instructions ------------ -Wagtail Personalisation requires Wagtail 1.10 and Django 1.11. +Wagtail Personalisation requires Wagtail 1.9 or 1.10 and Django 1.9, 1.10 or 1.11. To install the package with pip:: @@ -70,6 +70,6 @@ Sandbox To experiment with the package you can use the sandbox provided in this repository. To install this you will need to create and activate a virtualenv and then run ``make sandbox``. This will start a fresh Wagtail -install, with the personalisation module enabled, on http://localhost:8000 -and http://localhost:8000/cms/. The superuser credentials are +install, with the personalisation module enabled, on http://localhost:8000 +and http://localhost:8000/cms/. The superuser credentials are ``superuser@example.com`` with the password ``testing``. diff --git a/setup.py b/setup.py index 3f7ab58..511d780 100644 --- a/setup.py +++ b/setup.py @@ -3,7 +3,7 @@ from setuptools import find_packages, setup install_requires = [ - 'wagtail>=1.10,<1.11', + 'wagtail>=1.9,<1.11', 'user-agents>=1.0.1', 'wagtailfontawesome>=1.0.6', ] @@ -61,6 +61,8 @@ setup( 'Programming Language :: Python :: 3.5', 'Programming Language :: Python :: 3.6', 'Framework :: Django', + 'Framework :: Django :: 1.9', + 'Framework :: Django :: 1.10', 'Framework :: Django :: 1.11', 'Topic :: Internet :: WWW/HTTP :: Site Management', ], diff --git a/tests/settings.py b/tests/settings.py index c892786..15e185f 100644 --- a/tests/settings.py +++ b/tests/settings.py @@ -1,6 +1,10 @@ from __future__ import absolute_import, unicode_literals import os +from pkg_resources import parse_version as V + +import django + DATABASES = { 'default': { @@ -52,17 +56,24 @@ TEMPLATES = [ }, ] -MIDDLEWARE = ( - 'django.middleware.common.CommonMiddleware', - 'django.contrib.sessions.middleware.SessionMiddleware', - 'django.middleware.csrf.CsrfViewMiddleware', - 'django.contrib.auth.middleware.AuthenticationMiddleware', - 'django.contrib.auth.middleware.SessionAuthenticationMiddleware', - 'django.contrib.messages.middleware.MessageMiddleware', - 'django.middleware.clickjacking.XFrameOptionsMiddleware', +def get_middleware_settings(): + return ( + 'django.middleware.common.CommonMiddleware', + 'django.contrib.sessions.middleware.SessionMiddleware', + 'django.middleware.csrf.CsrfViewMiddleware', + 'django.contrib.auth.middleware.AuthenticationMiddleware', + 'django.contrib.auth.middleware.SessionAuthenticationMiddleware', + 'django.contrib.messages.middleware.MessageMiddleware', + 'django.middleware.clickjacking.XFrameOptionsMiddleware', - 'wagtail.wagtailcore.middleware.SiteMiddleware', -) + 'wagtail.wagtailcore.middleware.SiteMiddleware', + ) + +# Django 1.10 started to use "MIDDLEWARE" instead of "MIDDLEWARE_CLASSES". +if V(django.get_version()) < V('1.10'): + MIDDLEWARE_CLASSES = get_middleware_settings() +else: + MIDDLEWARE = get_middleware_settings() INSTALLED_APPS = ( 'wagtail_personalisation', diff --git a/tests/site/pages/migrations/0001_initial.py b/tests/site/pages/migrations/0001_initial.py index 9ba71aa..d911ea4 100644 --- a/tests/site/pages/migrations/0001_initial.py +++ b/tests/site/pages/migrations/0001_initial.py @@ -14,7 +14,7 @@ class Migration(migrations.Migration): initial = True dependencies = [ - ('wagtailcore', '0033_remove_golive_expiry_help_text'), + ('wagtailcore', '0001_initial'), ] operations = [ diff --git a/tests/site/pages/migrations/0002_regularpage.py b/tests/site/pages/migrations/0002_regularpage.py index 79b1c04..7b001ae 100644 --- a/tests/site/pages/migrations/0002_regularpage.py +++ b/tests/site/pages/migrations/0002_regularpage.py @@ -10,7 +10,7 @@ import wagtail.wagtailcore.fields class Migration(migrations.Migration): dependencies = [ - ('wagtailcore', '0033_remove_golive_expiry_help_text'), + ('wagtailcore', '0001_initial'), ('pages', '0001_initial'), ] diff --git a/tox.ini b/tox.ini index 6c2c6ab..634c7d4 100644 --- a/tox.ini +++ b/tox.ini @@ -1,11 +1,14 @@ [tox] -envlist = py{27,35,36}-django{111}-wagtail{110},lint +envlist = py{27,35,36}-django{19,110,111}-wagtail{19,110},lint [testenv] commands = coverage run --parallel -m pytest {posargs} extras = test -deps = +deps = + django19: django>=1.9,<1.10 + django110: django>=1.10<1.11 django111: django>=1.11,<1.12 + wagtail19: wagtail>=1.9,<1.10 wagtail110: wagtail>=1.10,<1.11 [testenv:coverage-report] @@ -21,6 +24,6 @@ commands = [testenv:lint] basepython = python3.5 deps = flake8 -commands = +commands = flake8 src tests setup.py isort -q --recursive --diff src/ tests/