Repository: nephila/djangocms-installer
Pull request #320 (2018-01-13 13:50:07)

Versions updates
* Added django CMS 3.5
* Dropped older Django / Python versions


Patch:
diff --git a/.travis.yml b/.travis.yml
index ca191c4..a28550a 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -8,7 +8,6 @@ python:
   - 3.6
   - 3.5
   - 3.4
-  - 3.3
   - 2.7
 
 env:
@@ -29,7 +28,6 @@ before_install:
 install:
   - pip install -U tox virtualenv coveralls
   - "if [[ $TRAVIS_PYTHON_VERSION == '2.7' ]]; then export TOX_ENV=py27; fi"
-  - "if [[ $TRAVIS_PYTHON_VERSION == '3.3' ]]; then export TOX_ENV=py33; fi"
   - "if [[ $TRAVIS_PYTHON_VERSION == '3.4' ]]; then export TOX_ENV=py34; fi"
   - "if [[ $TRAVIS_PYTHON_VERSION == '3.5' ]]; then export TOX_ENV=py35; fi"
   - "if [[ $TRAVIS_PYTHON_VERSION == '3.6' ]]; then export TOX_ENV=py36; fi"
diff --git a/HISTORY.rst b/HISTORY.rst
index 720a22a..37c86ff 100644
--- a/HISTORY.rst
+++ b/HISTORY.rst
@@ -7,6 +7,7 @@ History
 ++++++++++++++++++
 
 * Dropped cmsplugin-filer in favor of core plugins which now use filer
+* Added django CMS 3.5
 
 0.9.8 (2018-01-10)
 ++++++++++++++++++
diff --git a/README.rst b/README.rst
index b2a4a9b..2a97d74 100644
--- a/README.rst
+++ b/README.rst
@@ -2,33 +2,7 @@
 django CMS Installer
 ====================
 
-.. image:: https://img.shields.io/pypi/v/djangocms-installer.svg?style=flat-square
-    :target: https://pypi.python.org/pypi/djangocms-installer
-    :alt: Latest PyPI version
-
-.. image:: https://img.shields.io/pypi/dm/djangocms-installer.svg?style=flat-square
-    :target: https://pypi.python.org/pypi/djangocms-installer
-    :alt: Monthly downloads
-
-.. image:: https://img.shields.io/pypi/pyversions/djangocms-installer.svg?style=flat-square
-    :target: https://pypi.python.org/pypi/djangocms-installer
-    :alt: Python versions
-
-.. image:: https://img.shields.io/travis/nephila/djangocms-installer.svg?style=flat-square
-    :target: https://travis-ci.org/nephila/djangocms-installer
-    :alt: Latest Travis CI build status
-
-.. image:: https://img.shields.io/coveralls/nephila/djangocms-installer/master.svg?style=flat-square
-    :target: https://coveralls.io/r/nephila/djangocms-installer?branch=master
-    :alt: Test coverage
-
-.. image:: https://img.shields.io/codecov/c/github/nephila/djangocms-installer/master.svg?style=flat-square
-    :target: https://codecov.io/github/nephila/djangocms-installer
-    :alt: Test coverage
-
-.. image:: https://codeclimate.com/github/nephila/djangocms-installer/badges/gpa.svg?style=flat-square
-   :target: https://codeclimate.com/github/nephila/djangocms-installer
-   :alt: Code Climate
+|Gitter| |PyPiVersion| |PyVersion| |Status| |TestCoverage| |CodeClimate| |License|
 
 Command to easily bootstrap django CMS projects
 
@@ -42,8 +16,8 @@ project.
 
 Refer to `django CMS Tutorial`_ on how to properly setup your first django CMS project.
 
-.. warning:: Version 0.9 dropped support for Python 2.6, Django <1.8 and django CMS < 3.2.
-             More 0.8.x versions may be released after 0.9 is out in case important bugfixes will
+.. warning:: Version 1.0 dropped support for Python 3.3 and django CMS < 3.4.
+             More 0.9.x versions may be released after 1.0 is out in case important bugfixes will
              be needed.
 
 Usage
@@ -95,17 +69,15 @@ Supported versions
 
 The current supported version matrix is the following:
 
-+----------------+-------------+-------------+---------------+
-|                | Django 1.8  | Django 1.9  | Django 1.10   |
-+----------------+-------------+-------------+---------------+
-| django CMS 3.2 | Supported   | Supported   | Unsupported   |
-+----------------+-------------+-------------+---------------+
-| django CMS 3.3 | Supported   | Supported   | Unsupported   |
-+----------------+-------------+-------------+---------------+
-| django CMS 3.4 | Supported   | Supported   | Supported     |
-+----------------+-------------+-------------+---------------+
++----------------+-------------+-------------+---------------+---------------+
+|                | Django 1.8  | Django 1.9  | Django 1.10   | Django 1.11   |
++----------------+-------------+-------------+---------------+---------------+
+| django CMS 3.4 | Supported   | Supported   | Supported     | Supported     |
++----------------+-------------+-------------+---------------+---------------+
+| django CMS 3.5 | Supported   | Supported   | Supported     | Supported     |
++----------------+-------------+-------------+---------------+---------------+
 
-See `version 0.8`_ for older Django / django CMS versions support
+See `version 0.9`_ for older Django / django CMS versions support
 
 Any beta and develop version of Django and django CMS, by its very nature,
 it's not supported, while it still may work.
@@ -136,6 +108,35 @@ Please check that the ``.py`` extension is associated correctly with Python inte
     Python.File="C:\Windows\py.exe" "%1" %*
 
 
-.. _version 0.8: https://github.com/nephila/djangocms-installer/tree/release/0.8.x#supported-versions
+.. _version 0.9: https://github.com/nephila/djangocms-installer/tree/release/0.9.x#supported-versions
 .. _django CMS Tutorial: https://django-cms.readthedocs.io/en/latest/introduction/index.html
 .. _installer usage page: http://djangocms-installer.readthedocs.io/en/latest/usage.html
+
+
+.. |Gitter| image:: https://img.shields.io/badge/GITTER-join%20chat-brightgreen.svg?style=flat-square
+    :target: https://gitter.im/nephila/applications
+    :alt: Join the Gitter chat
+
+.. |PyPiVersion| image:: https://img.shields.io/pypi/v/djangocms-installer.svg?style=flat-square
+    :target: https://pypi.python.org/pypi/djangocms-installer
+    :alt: Latest PyPI version
+
+.. |PyVersion| image:: https://img.shields.io/pypi/pyversions/djangocms-installer.svg?style=flat-square
+    :target: https://pypi.python.org/pypi/djangocms-installer
+    :alt: Python versions
+
+.. |Status| image:: https://img.shields.io/travis/nephila/djangocms-installer.svg?style=flat-square
+    :target: https://travis-ci.org/nephila/djangocms-installer
+    :alt: Latest Travis CI build status
+
+.. |TestCoverage| image:: https://img.shields.io/coveralls/nephila/djangocms-installer/master.svg?style=flat-square
+    :target: https://coveralls.io/r/nephila/djangocms-installer?branch=master
+    :alt: Test coverage
+
+.. |License| image:: https://img.shields.io/github/license/nephila/djangocms-installer.svg?style=flat-square
+   :target: https://pypi.python.org/pypi/djangocms-installer/
+    :alt: License
+
+.. |CodeClimate| image:: https://codeclimate.com/github/nephila/djangocms-installer/badges/gpa.svg?style=flat-square
+   :target: https://codeclimate.com/github/nephila/djangocms-installer
+   :alt: Code Climate
diff --git a/djangocms_installer/config/__init__.py b/djangocms_installer/config/__init__.py
index c18ddfe..dc80396 100644
--- a/djangocms_installer/config/__init__.py
+++ b/djangocms_installer/config/__init__.py
@@ -223,16 +223,19 @@ information.
     # Convert version to numeric format for easier checking
     try:
         django_version, cms_version = supported_versions(args.django_version, args.cms_version)
-    except RuntimeError as e:
+        cms_package = data.PACKAGE_MATRIX.get(
+            cms_version, data.PACKAGE_MATRIX[data.DJANGOCMS_LTS]
+        )
+    except RuntimeError as e:  # pragma: no cover
         sys.stderr.write(compat.unicode(e))
         sys.exit(6)
-    if django_version is None:
+    if django_version is None:  # pragma: no cover
         sys.stderr.write(
             'Please provide a Django supported version: {0}. Only Major.Minor '
             'version selector is accepted\n'.format(', '.join(data.DJANGO_SUPPORTED))
         )
         sys.exit(6)
-    if django_version is None:
+    if cms_version is None:  # pragma: no cover
         sys.stderr.write(
             'Please provide a django CMS supported version: {0}. Only Major.Minor '
             'version selector is accepted\n'.format(', '.join(data.DJANGOCMS_SUPPORTED))
@@ -244,36 +247,32 @@ information.
 
         # django CMS version check
         if args.cms_version == 'develop':
-            requirements.append(data.DJANGOCMS_DEVELOP)
+            requirements.append(cms_package)
             warnings.warn(data.VERSION_WARNING.format('develop', 'django CMS'))
         elif args.cms_version == 'rc':  # pragma: no cover
-            requirements.append(data.DJANGOCMS_RC)
+            requirements.append(cms_package)
         elif args.cms_version == 'beta':  # pragma: no cover
-            requirements.append(data.DJANGOCMS_BETA)
+            requirements.append(cms_package)
             warnings.warn(data.VERSION_WARNING.format('beta', 'django CMS'))
         else:
-            requirements.append('django-cms<{0}'.format(less_than_version(cms_version)))
+            requirements.append(cms_package)
 
         if args.cms_version in ('rc', 'develop'):
             requirements.extend(data.REQUIREMENTS['cms-master'])
+        elif LooseVersion(cms_version) >= LooseVersion('3.5'):
+            requirements.extend(data.REQUIREMENTS['cms-3.5'])
         elif LooseVersion(cms_version) >= LooseVersion('3.4'):
             requirements.extend(data.REQUIREMENTS['cms-3.4'])
-        elif LooseVersion(cms_version) >= LooseVersion('3.3'):
-            requirements.extend(data.REQUIREMENTS['cms-3.3'])
-        elif LooseVersion(cms_version) >= LooseVersion('3.2'):
-            requirements.extend(data.REQUIREMENTS['cms-3.2'])
 
         if not args.no_db_driver:
             requirements.append(args.db_driver)
         if not args.no_plugins:
             if args.cms_version in ('rc', 'develop'):
                 requirements.extend(data.REQUIREMENTS['plugins-master'])
+            elif LooseVersion(cms_version) >= LooseVersion('3.5'):
+                requirements.extend(data.REQUIREMENTS['plugins-3.5'])
             elif LooseVersion(cms_version) >= LooseVersion('3.4'):
                 requirements.extend(data.REQUIREMENTS['plugins-3.4'])
-            elif LooseVersion(cms_version) >= LooseVersion('3.3'):
-                requirements.extend(data.REQUIREMENTS['plugins-3.3'])
-            else:
-                requirements.extend(data.REQUIREMENTS['plugins-3.2'])
             requirements.extend(data.REQUIREMENTS['filer'])
 
         if args.aldryn:  # pragma: no cover
@@ -293,19 +292,16 @@ information.
         if args.use_timezone:
             requirements.append('pytz')
 
-        # Reversion package version depends on django version
-        if args.reversion and cms_version in ('3.2', '3.3'):
-            if django_version == '1.8':
-                requirements.extend(data.REQUIREMENTS['reversion-django-1.8'])
-            elif django_version == '1.9':
-                requirements.extend(data.REQUIREMENTS['reversion-django-1.9'])
-
         if django_version == '1.8':
             requirements.extend(data.REQUIREMENTS['django-1.8'])
         elif django_version == '1.9':
             requirements.extend(data.REQUIREMENTS['django-1.9'])
         elif django_version == '1.10':
             requirements.extend(data.REQUIREMENTS['django-1.10'])
+        elif django_version == '1.11':
+            requirements.extend(data.REQUIREMENTS['django-1.11'])
+        elif django_version == '2.0':  # pragma: no cover
+            requirements.extend(data.REQUIREMENTS['django-2.0'])
 
         requirements.extend(data.REQUIREMENTS['default'])
 
diff --git a/djangocms_installer/config/data.py b/djangocms_installer/config/data.py
index 2869756..ba81b07 100644
--- a/djangocms_installer/config/data.py
+++ b/djangocms_installer/config/data.py
@@ -14,38 +14,32 @@ CONFIGURABLE_OPTIONS = ['--db', '--cms-version', '--django-version', '--i18n',
 DJANGOCMS_DEVELOP = 'https://github.com/divio/django-cms/archive/develop.zip?{bust}'.format(
     **bust
 )
-DJANGOCMS_RC = 'https://github.com/divio/django-cms/archive/release/3.4.x.zip?{bust}'.format(
+DJANGOCMS_RC = 'https://github.com/divio/django-cms/archive/develop.zip?{bust}'.format(
     **bust
 )
-DJANGOCMS_BETA = 'https://github.com/divio/django-cms/archive/3.0.0.beta3.zip'
+DJANGOCMS_BETA = DJANGOCMS_DEVELOP
+DJANGOCMS_34 = 'django-cms>=3.4,<3.5'
+DJANGOCMS_35 = DJANGOCMS_RC
 
-if sys.version_info >= (3, 5):
-    DJANGOCMS_SUPPORTED = ('3.2', '3.3', '3.4', 'stable', 'lts', 'develop')
-    DJANGOCMS_STABLE = '3.4'
+if sys.version_info >= (3, 4):
+    DJANGOCMS_SUPPORTED = ('3.4', '3.5', 'stable', 'lts', 'develop')
+    DJANGOCMS_STABLE = '3.5'
     DJANGOCMS_LTS = '3.4'
 else:
-    DJANGOCMS_SUPPORTED = ('3.2', '3.3', '3.4', 'stable', 'lts', 'develop')
-    DJANGOCMS_STABLE = '3.4'
+    DJANGOCMS_SUPPORTED = ('3.4', '3.5', 'stable', 'lts', 'develop')
+    DJANGOCMS_STABLE = '3.5'
     DJANGOCMS_LTS = '3.4'
 
 DJANGO_DEVELOP = 'https://github.com/django/django/archive/master.zip?{bust}'.format(**bust)
 DJANGO_BETA = 'https://github.com/django/django/archive/master.zip?{bust}'.format(**bust)
-if sys.version_info >= (3, 5):
-    DJANGO_SUPPORTED = ('1.8', '1.9', '1.10', 'stable', 'lts')
-    DJANGO_STABLE = '1.10'
-    DJANGO_LTS = '1.8'
-elif sys.version_info >= (3, 4):
-    DJANGO_SUPPORTED = ('1.8', '1.9', '1.10', 'stable', 'lts')
-    DJANGO_STABLE = '1.10'
-    DJANGO_LTS = '1.8'
-elif sys.version_info >= (3, 3):
-    DJANGO_SUPPORTED = ('1.8', 'stable', 'lts')
-    DJANGO_STABLE = '1.8'
-    DJANGO_LTS = '1.8'
+if sys.version_info >= (3, 4):
+    DJANGO_SUPPORTED = ('1.8', '1.9', '1.10', '1.11', 'stable', 'lts')
+    DJANGO_STABLE = '1.11'
+    DJANGO_LTS = '1.11'
 else:
-    DJANGO_SUPPORTED = ('1.8', '1.9', '1.10', 'stable', 'lts')
-    DJANGO_STABLE = '1.10'
-    DJANGO_LTS = '1.8'
+    DJANGO_SUPPORTED = ('1.8', '1.9', '1.10', '1.11', 'stable', 'lts')
+    DJANGO_STABLE = '1.11'
+    DJANGO_LTS = '1.11'
 
 CMS_VERSION_MATRIX = {
     'stable': DJANGOCMS_STABLE,
@@ -62,10 +56,12 @@ DJANGO_VERSION_MATRIX = {
     'develop': '1.11'
 }
 VERSION_MATRIX = {
-    '3.2': ('1.8', '1.9'),
-    '3.3': ('1.8', '1.9'),
-    '3.4': ('1.8', '1.10'),
-    '3.5': ('1.8', '1.10'),
+    '3.4': ('1.8', '1.11'),
+    '3.5': ('1.8', '1.11'),
+}
+PACKAGE_MATRIX = {
+    '3.4': DJANGOCMS_34,
+    '3.5': DJANGOCMS_35,
 }
 
 REQUIREMENTS = {
@@ -82,6 +78,8 @@ REQUIREMENTS = {
     ],
     'django-1.10': [
     ],
+    'django-1.11': [
+    ],
     'reversion-django-1.8': [
         'django-reversion>=1.10,<1.11',
     ],
@@ -91,15 +89,14 @@ REQUIREMENTS = {
     'reversion-django-1.10': [
         'django-reversion>=2.0,<2.1',
     ],
-    'cms-3.2': [
-        'djangocms-admin-style>=1.1.1,<1.3',
-        'django-treebeard>=4.0,<5.0',
+    'reversion-django-1.11': [
+        'django-reversion>=2.0,<2.1',
     ],
-    'cms-3.3': [
+    'cms-3.4': [
         'djangocms-admin-style>=1.2,<1.3',
         'django-treebeard>=4.0,<5.0',
     ],
-    'cms-3.4': [
+    'cms-3.5': [
         'djangocms-admin-style>=1.2,<1.3',
         'django-treebeard>=4.0,<5.0',
     ],
@@ -107,28 +104,6 @@ REQUIREMENTS = {
         'https://github.com/divio/djangocms-admin-style/archive/master.zip?{bust}'.format(**bust),
         'django-treebeard>=4.0,<5.0',
     ],
-    'plugins-3.2': [
-        'djangocms-text-ckeditor>=2.8.1,<3.0',
-        'djangocms-link>=1.8,<2.0',
-        'djangocms-style>=1.7,<2.0',
-        'djangocms-googlemap>=0.5,<1.0',
-        'djangocms-snippet>=1.9,<2.0',
-        'djangocms-video>=1.1,<2.0',
-        'djangocms-column>=1.6,<1.7',
-        'djangocms-file>=1.0,<1.1',
-        'djangocms-picture>=0.2.0,<0.3',
-    ],
-    'plugins-3.3': [
-        'djangocms-text-ckeditor>=3.2.1',
-        'djangocms-link>=1.8',
-        'djangocms-style>=1.7',
-        'djangocms-googlemap>=0.5',
-        'djangocms-snippet>=1.9',
-        'djangocms-video>=2.0',
-        'djangocms-column>=1.6',
-        'djangocms-file>=1.0,<1.1',
-        'djangocms-picture>=0.2.0,<0.3',
-    ],
     'plugins-3.4': [
         'djangocms-text-ckeditor>=3.2.1',
         'djangocms-link>=1.8',
@@ -140,6 +115,18 @@ REQUIREMENTS = {
         'djangocms-file>=2.0,<3.0',
         'djangocms-picture>=2.0,<3.0',
     ],
+    'plugins-3.5': [
+        'https://github.com/divio/djangocms-text-ckeditor/archive/master.zip?{bust}'
+        ''.format(**bust),
+        'https://github.com/divio/djangocms-file/archive/master.zip?{bust}'.format(**bust),
+        'https://github.com/divio/djangocms-link/archive/master.zip?{bust}'.format(**bust),
+        'https://github.com/divio/djangocms-style/archive/master.zip?{bust}'.format(**bust),
+        'https://github.com/divio/djangocms-googlemap/archive/master.zip?{bust}'.format(**bust),
+        'https://github.com/divio/djangocms-snippet/archive/master.zip?{bust}'.format(**bust),
+        'https://github.com/divio/djangocms-picture/archive/master.zip?{bust}'.format(**bust),
+        'https://github.com/divio/djangocms-video/archive/master.zip?{bust}'.format(**bust),
+        'https://github.com/divio/djangocms-column/archive/master.zip?{bust}'.format(**bust),
+    ],
     'plugins-master': [
         'https://github.com/divio/djangocms-text-ckeditor/archive/master.zip?{bust}'
         ''.format(**bust),
@@ -158,7 +145,7 @@ REQUIREMENTS = {
     ],
     'filer': [
         'easy_thumbnails',
-        'django-filer>=1.2',
+        'django-filer>=1.3',
     ],
 }
 
diff --git a/djangocms_installer/django/__init__.py b/djangocms_installer/django/__init__.py
index 568b28a..6c2ab74 100644
--- a/djangocms_installer/django/__init__.py
+++ b/djangocms_installer/django/__init__.py
@@ -289,8 +289,6 @@ def _build_settings(config_data):
 
     if not config_data.no_plugins:
         apps.extend(vars.FILER_PLUGINS_3)
-    if LooseVersion(config_data.cms_version) > LooseVersion('3.4'):
-        apps.remove('djangocms_snippet')
 
     if config_data.aldryn:  # pragma: no cover
         apps.extend(vars.ALDRYN_APPLICATIONS)
diff --git a/djangocms_installer/utils.py b/djangocms_installer/utils.py
index 4ac8dbf..4a34094 100644
--- a/djangocms_installer/utils.py
+++ b/djangocms_installer/utils.py
@@ -98,11 +98,14 @@ def less_than_version(value):
     Converts the current version to the next one for inserting into requirements
     in the ' < version' format
     """
-    items = list(map(int, str(value).split(".")))
+    items = list(map(int, str(value).split('.')))
     if len(items) == 1:
         items.append(0)
     items[1] += 1
-    return ".".join(map(str, items))
+    if value == '1.11':
+        return '2.0'
+    else:
+        return '.'.join(map(str, items))
 
 
 class chdir(object):
diff --git a/docs/reference.rst b/docs/reference.rst
index 9f59357..def2bb9 100644
--- a/docs/reference.rst
+++ b/docs/reference.rst
@@ -31,15 +31,15 @@ The following arguments can be overridden in :ref:`wizard_mode`
 * ``--use-tz``, ``-z``: Activate Django timezone support;  choices: ``yes|no``, default: ``yes``
 * ``--timezone``, ``-t``: Optional default time zone, default: *local timezone*
 * ``--reversion``, ``-e``: Install and configure reversion support, choices: ``yes|no``,
-  default: ``yes``; this will ignored for RC/develop/3.4 versions of django CMS as support has
+  default: ``yes``; this will ignored for 3.4 and higher versions of django CMS as support has
   been dropped upstream;
 * ``--permissions``: Activate CMS permission management; choices: ``yes|no``, default: ``no``
 * ``--languages``, ``-l``: Languages available for the project. Option can be provided multiple
   times, or as a comma separated list.
   Only language codes supported by Django can be used here;
   refer to `django source`_ for a list of supported codes.
-* ``--django-version``: Django version;  choices: ``1.8|1.9|1.10|stable|lts``, default: ``lts```
-* ``--cms-version``, ``-v``: django CMS version, choices: ``3.2|3.3|3.4|stable|lts``.
+* ``--django-version``: Django version;  choices: ``1.8|1.9|1.10|1.11|stable|lts``, default: ``lts```
+* ``--cms-version``, ``-v``: django CMS version, choices: ``3.4|3.5|stable|lts``.
   default: ``lts``
 * ``--bootstrap``: Use Twitter Bootstrap as theme, choices: ``yes|no``, default: ``no``
 * ``--starting-page``: Load a starting page with examples (available for english language only)
@@ -47,8 +47,8 @@ The following arguments can be overridden in :ref:`wizard_mode`
 * ``--templates``: Use a custom directory as template source; is checked to be a valid path,
   otherwise the shipped templates are used
 
-.. note:: Django ``stable`` keyword is expanded to latest released Django version
-.. note:: Django ``lts`` keyword is expanded to latest released Django LTSrsion
+.. note:: Django ``stable`` keyword is expanded to latest released Django version supported by django CMS
+.. note:: Django ``lts`` keyword is expanded to latest released Django LTS supported by django CMS
 .. note:: django-cms ``stable`` keyword is expanded to latest released django-cms version
 .. note:: django-cms ``lts`` keyword is expanded to latest released django-cms version
 .. warning:: if an unsupported combination of Django and django CMS version is selected, the
diff --git a/setup.py b/setup.py
index b184ef3..9820f71 100644
--- a/setup.py
+++ b/setup.py
@@ -46,7 +46,6 @@ setup(
         'Programming Language :: Python :: 2',
         'Programming Language :: Python :: 2.7',
         'Programming Language :: Python :: 3',
-        'Programming Language :: Python :: 3.3',
         'Programming Language :: Python :: 3.4',
         'Programming Language :: Python :: 3.5',
         'Programming Language :: Python :: 3.6',
@@ -54,6 +53,7 @@ setup(
         'Framework :: Django :: 1.8',
         'Framework :: Django :: 1.9',
         'Framework :: Django :: 1.10',
+        'Framework :: Django :: 1.11',
         'Topic :: Software Development',
     ],
     test_suite='tests',
diff --git a/tox.ini b/tox.ini
index 8336aff..dd218bf 100644
--- a/tox.ini
+++ b/tox.ini
@@ -1,6 +1,6 @@
 [tox]
 downloadcache = {toxworkdir}/cache
-envlist = pep8,isort,docs,py{27,33,34,35,36}
+envlist = pep8,isort,docs,py{27,34,35,36}
 passenv = LANG
 
 [testenv]


Test patch:
diff --git a/tests/base.py b/tests/base.py
index 9908f7d..b6971c6 100644
--- a/tests/base.py
+++ b/tests/base.py
@@ -15,7 +15,7 @@ from six import StringIO
 if sys.version_info < (3, 4):
     dj_ver = '1.8'
 else:
-    dj_ver = '1.9'
+    dj_ver = '1.10'
 
 
 SYSTEM_ACTIVATE = os.path.join(os.path.dirname(sys.executable), 'activate_this.py')
diff --git a/tests/config.py b/tests/config.py
index 8dcdfc3..f9dd44e 100644
--- a/tests/config.py
+++ b/tests/config.py
@@ -27,7 +27,7 @@ class TestConfig(BaseTestClass):
         self.assertEqual(conf_data.project_name, 'example_prj')
 
         self.assertEqual(conf_data.cms_version, '3.4')
-        self.assertEqual(conf_data.django_version, '1.8')
+        self.assertEqual(conf_data.django_version, '1.11')
         self.assertEqual(conf_data.i18n, 'yes')
         self.assertEqual(conf_data.reversion, 'yes')
         self.assertEqual(conf_data.permissions, 'no')
@@ -58,7 +58,7 @@ class TestConfig(BaseTestClass):
 
         self.assertEqual(conf_data.project_name, 'example_prj')
 
-        self.assertEqual(conf_data.cms_version, '3.4')
+        self.assertEqual(conf_data.cms_version, '3.5')
         self.assertEqual(conf_data.django_version, '1.8')
         self.assertEqual(conf_data.i18n, 'yes')
         self.assertEqual(conf_data.reversion, 'no')
@@ -71,7 +71,7 @@ class TestConfig(BaseTestClass):
         self.assertEqual(conf_data.db_driver, 'psycopg2')
 
         dj_version = '1.8'
-        cms_version = '3.2'
+        cms_version = 'develop'
         conf_data = config.parse([
             '-q',
             '--db=postgres://user:pwd@host/dbname',
@@ -89,7 +89,7 @@ class TestConfig(BaseTestClass):
 
         self.assertEqual(conf_data.project_name, 'example_prj')
 
-        self.assertEqual(str(conf_data.cms_version), cms_version)
+        self.assertEqual(str(conf_data.cms_version), '3.5')
         self.assertEqual(str(conf_data.django_version), dj_version)
         self.assertEqual(conf_data.i18n, 'yes')
         self.assertEqual(conf_data.reversion, 'no')
@@ -102,7 +102,7 @@ class TestConfig(BaseTestClass):
         self.assertEqual(conf_data.db_driver, 'psycopg2')
 
         dj_version = '1.8'
-        cms_version = '3.2'
+        cms_version = '3.4'
         conf_data = config.parse([
             '-q',
             '--db=postgres://user:pwd@host/dbname',
@@ -295,30 +295,23 @@ class TestConfig(BaseTestClass):
 
     def test_supported_versions(self):
 
-        if (3, 3) <= sys.version_info <= (3, 4):
-            self.assertEqual(supported_versions('stable', 'stable'), ('1.8', '3.4'))
-            self.assertEqual(supported_versions('stable', '3.1.10'), ('1.8', None))
-            self.assertEqual(supported_versions('stable', 'rc'), ('1.8', '3.5'))
-            self.assertEqual(supported_versions('stable', 'beta'), ('1.8', '3.5'))
-            self.assertEqual(supported_versions('stable', 'develop'), ('1.8', '3.5'))
-        else:
-            self.assertEqual(supported_versions('stable', 'stable'), ('1.10', '3.4'))
-            self.assertEqual(supported_versions('stable', '3.1.10'), ('1.10', None))
-            self.assertEqual(supported_versions('stable', 'rc'), ('1.10', '3.5'))
-            self.assertEqual(supported_versions('stable', 'beta'), ('1.10', '3.5'))
-            self.assertEqual(supported_versions('stable', 'develop'), ('1.10', '3.5'))
-        self.assertEqual(supported_versions('lts', 'rc'), ('1.8', '3.5'))
-        self.assertEqual(supported_versions('lts', 'lts'), ('1.8', '3.4'))
+        self.assertEqual(supported_versions('stable', 'stable'), ('1.11', '3.5'))
+        self.assertEqual(supported_versions('stable', '3.1.10'), ('1.11', None))
+        self.assertEqual(supported_versions('stable', 'rc'), ('1.11', '3.5'))
+        self.assertEqual(supported_versions('stable', 'beta'), ('1.11', '3.5'))
+        self.assertEqual(supported_versions('stable', 'develop'), ('1.11', '3.5'))
+        self.assertEqual(supported_versions('lts', 'rc'), ('1.11', '3.5'))
+        self.assertEqual(supported_versions('lts', 'lts'), ('1.11', '3.4'))
 
         with self.assertRaises(RuntimeError):
             supported_versions('stable', '2.4'), ('1.5', '2.4')
         with self.assertRaises(RuntimeError):
             supported_versions('1.5', 'stable'), ('1.8', '3.1')
 
-        self.assertEqual(supported_versions('1.9', 'stable'), ('1.9', '3.4'))
-        self.assertEqual(supported_versions('1.8', 'stable'), ('1.8', '3.4'))
+        self.assertEqual(supported_versions('1.9', 'stable'), ('1.9', '3.5'))
+        self.assertEqual(supported_versions('1.8', 'stable'), ('1.8', '3.5'))
         self.assertEqual(supported_versions('1.8', 'lts'), ('1.8', '3.4'))
-        self.assertEqual(supported_versions('1.8.3', 'stable'), (None, '3.4'))
+        self.assertEqual(supported_versions('1.8.3', 'stable'), (None, '3.5'))
 
     def test_requirements(self):
         """
@@ -328,18 +321,17 @@ class TestConfig(BaseTestClass):
         conf_data = config.parse([
             '-q',
             '--db=postgres://user:pwd@host/dbname',
-            '--cms-version=3.2',
+            '--cms-version=3.4',
             '--django-version={0}'.format(dj_version),
             '--i18n=no',
             '-f',
             '-p'+self.project_dir,
             'example_prj'])
-
-        self.assertTrue(conf_data.requirements.find('django-cms<3.3') > -1)
+        self.assertTrue(conf_data.requirements.find(config.data.DJANGOCMS_34) > -1)
         self.assertTrue(conf_data.requirements.find('Django<1.9') > -1)
-        self.assertTrue(conf_data.requirements.find('django-reversion>=1.10,<1.11') > -1)
-        self.assertTrue(conf_data.requirements.find('djangocms-text-ckeditor>=2.8.1') > -1)
-        self.assertTrue(conf_data.requirements.find('djangocms-admin-style>=1.1.1') > -1)
+        self.assertFalse(conf_data.requirements.find('django-reversion') > -1)
+        self.assertTrue(conf_data.requirements.find('djangocms-text-ckeditor>=3.2.1') > -1)
+        self.assertTrue(conf_data.requirements.find('djangocms-admin-style>=1.2') > -1)
         self.assertTrue(conf_data.requirements.find('django-filer') > -1)
         self.assertTrue(conf_data.requirements.find('cmsplugin-filer') == -1)
         self.assertTrue(conf_data.requirements.find('djangocms-file') > -1)
@@ -355,15 +347,12 @@ class TestConfig(BaseTestClass):
             '-p'+self.project_dir,
             'example_prj'])
 
-        self.assertTrue(conf_data.requirements.find('django-cms<3.5') > -1)
-        if (3, 3) <= sys.version_info <= (3, 4):
-            self.assertTrue(conf_data.requirements.find('Django<1.9') > -1)
-        else:
-            self.assertTrue(conf_data.requirements.find('Django<1.11') > -1)
+        self.assertTrue(conf_data.requirements.find(config.data.DJANGOCMS_35) > -1)
+        self.assertTrue(conf_data.requirements.find('Django<2.0') > -1)
         self.assertFalse(conf_data.requirements.find('django-reversion') > -1)
         self.assertTrue(conf_data.requirements.find('cmsplugin-filer') == -1)
-        self.assertTrue(conf_data.requirements.find('djangocms-text-ckeditor>=3.2.1') > -1)
-        self.assertTrue(conf_data.requirements.find('djangocms-admin-style>=1.2') > -1)
+        self.assertTrue(conf_data.requirements.find('djangocms-admin-style') > -1)
+        self.assertTrue(conf_data.requirements.find('https://github.com/divio/djangocms-text-ckeditor') > -1)
         self.assertTrue(conf_data.requirements.find('djangocms-column') > -1)
         self.assertTrue(conf_data.requirements.find('djangocms-file') > -1)
         self.assertTrue(conf_data.requirements.find('djangocms-flash') == -1)
@@ -386,9 +375,8 @@ class TestConfig(BaseTestClass):
             '-p'+self.project_dir,
             'example_prj'])
 
-        print(conf_data.requirements)
-        self.assertTrue(conf_data.requirements.find(config.data.DJANGOCMS_DEVELOP) > -1)
-        self.assertTrue(conf_data.requirements.find('Django<1.9') > -1)
+        self.assertTrue(conf_data.requirements.find(config.data.DJANGOCMS_35) > -1)
+        self.assertTrue(conf_data.requirements.find('Django<2.0') > -1)
         self.assertFalse(conf_data.requirements.find('django-reversion') > -1)
         self.assertTrue(conf_data.requirements.find('djangocms-text-ckeditor') > -1)
         self.assertTrue(conf_data.requirements.find('djangocms-admin-style') > -1)
@@ -417,7 +405,7 @@ class TestConfig(BaseTestClass):
             '-p'+self.project_dir,
             'example_prj'])
 
-        self.assertTrue(conf_data.requirements.find(config.data.DJANGOCMS_DEVELOP) > -1)
+        self.assertTrue(conf_data.requirements.find(config.data.DJANGOCMS_35) > -1)
         self.assertTrue(conf_data.requirements.find('Django<1.9') > -1)
         self.assertFalse(conf_data.requirements.find('django-reversion') > -1)
         self.assertTrue(conf_data.requirements.find('django-mptt') == -1)
@@ -435,11 +423,8 @@ class TestConfig(BaseTestClass):
             '-p'+self.project_dir,
             'example_prj'])
 
-        self.assertTrue(conf_data.requirements.find(config.data.DJANGOCMS_DEVELOP) > -1)
-        if (3, 3) <= sys.version_info <= (3, 4):
-            self.assertTrue(conf_data.requirements.find('Django<1.9') > -1)
-        else:
-            self.assertTrue(conf_data.requirements.find('Django<1.11') > -1)
+        self.assertTrue(conf_data.requirements.find(config.data.DJANGOCMS_35) > -1)
+        self.assertTrue(conf_data.requirements.find('Django<2.0') > -1)
         self.assertFalse(conf_data.requirements.find('django-reversion') > -1)
         self.assertTrue(conf_data.requirements.find('https://github.com/divio/djangocms-link') > -1)
         self.assertTrue(conf_data.requirements.find('https://github.com/divio/djangocms-style') > -1)
@@ -463,11 +448,8 @@ class TestConfig(BaseTestClass):
             '-p'+self.project_dir,
             'example_prj'])
 
-        self.assertTrue(conf_data.requirements.find('django-cms<3.5') > -1)
-        if (3, 3) <= sys.version_info <= (3, 4):
-            self.assertTrue(conf_data.requirements.find('Django<1.9') > -1)
-        else:
-            self.assertTrue(conf_data.requirements.find('Django<1.11') > -1)
+        self.assertTrue(conf_data.requirements.find(config.data.DJANGOCMS_34) > -1)
+        self.assertTrue(conf_data.requirements.find('Django<2.0') > -1)
         self.assertFalse(conf_data.requirements.find('django-reversion') > -1)
         self.assertTrue(conf_data.requirements.find('djangocms-text-ckeditor>=3.2') > -1)
         self.assertTrue(conf_data.requirements.find('djangocms-admin-style') > -1)
@@ -477,7 +459,7 @@ class TestConfig(BaseTestClass):
             '-q',
             '--db=postgres://user:pwd@host/dbname',
             '--i18n=no',
-            '--cms-version=3.3',
+            '--cms-version=3.4',
             '--django-version=lts',
             '-f',
             '--reversion=yes',
@@ -485,9 +467,9 @@ class TestConfig(BaseTestClass):
             '-p'+self.project_dir,
             'example_prj'])
 
-        self.assertTrue(conf_data.requirements.find('django-cms<3.4') > -1)
-        self.assertTrue(conf_data.requirements.find('Django<1.9') > -1)
-        self.assertTrue(conf_data.requirements.find('django-reversion') > -1)
+        self.assertTrue(conf_data.requirements.find(config.data.DJANGOCMS_34) > -1)
+        self.assertTrue(conf_data.requirements.find('Django<2.0') > -1)
+        self.assertFalse(conf_data.requirements.find('django-reversion') > -1)
         self.assertTrue(conf_data.requirements.find('djangocms-text-ckeditor>=3.2') > -1)
         self.assertTrue(conf_data.requirements.find('djangocms-admin-style') > -1)
         self.assertTrue(conf_data.requirements.find('pytz') > -1)
@@ -504,7 +486,7 @@ class TestConfig(BaseTestClass):
             '-p'+self.project_dir,
             'example_prj'])
 
-        self.assertTrue(conf_data.requirements.find(config.data.DJANGOCMS_DEVELOP) > -1)
+        self.assertTrue(conf_data.requirements.find(config.data.DJANGOCMS_35) > -1)
         self.assertTrue(conf_data.requirements.find('Django<1.9') > -1)
         self.assertFalse(conf_data.requirements.find('django-reversion>=1.10,<1.11') > -1)
         self.assertTrue(conf_data.requirements.find('djangocms-text-ckeditor') > -1)
@@ -525,7 +507,7 @@ class TestConfig(BaseTestClass):
             '-p'+self.project_dir,
             'example_prj'])
 
-        self.assertTrue(conf_data.requirements.find(config.data.DJANGOCMS_DEVELOP) > -1)
+        self.assertTrue(conf_data.requirements.find(config.data.DJANGOCMS_35) > -1)
         self.assertTrue(conf_data.requirements.find('Django<1.9') > -1)
         self.assertFalse(conf_data.requirements.find('django-reversion') > -1)
         self.assertTrue(conf_data.requirements.find('djangocms-text-ckeditor') == -1)
@@ -546,7 +528,7 @@ class TestConfig(BaseTestClass):
             '-p'+self.project_dir,
             'example_prj'])
 
-        self.assertTrue(conf_data.requirements.find(config.data.DJANGOCMS_DEVELOP) > -1)
+        self.assertTrue(conf_data.requirements.find(config.data.DJANGOCMS_35) > -1)
         self.assertTrue(conf_data.requirements.find('Django<1.9') > -1)
         self.assertFalse(conf_data.requirements.find('django-reversion') > -1)
         self.assertTrue(conf_data.requirements.find('djangocms-text-ckeditor') == -1)
@@ -562,9 +544,8 @@ class TestConfig(BaseTestClass):
             '-p'+self.project_dir,
             'example_prj'])
 
-        self.assertTrue(conf_data.requirements.find('django-cms<3.5') > -1)
-        self.assertTrue(conf_data.requirements.find('Django<1.9') > -1)
-        self.assertTrue(conf_data.requirements.find('django-cms<3.5') > -1)
+        self.assertTrue(conf_data.requirements.find(config.data.DJANGOCMS_34) > -1)
+        self.assertTrue(conf_data.requirements.find('Django<2.0') > -1)
 
         conf_data = config.parse([
             '-q',
@@ -574,12 +555,8 @@ class TestConfig(BaseTestClass):
             '-p'+self.project_dir,
             'example_prj'])
 
-        self.assertTrue(conf_data.requirements.find('django-cms<3.5') > -1)
-        if (3, 3) <= sys.version_info <= (3, 4):
-            self.assertTrue(conf_data.requirements.find('Django<1.9') > -1)
-        else:
-            self.assertTrue(conf_data.requirements.find('Django<1.11') > -1)
-        self.assertTrue(conf_data.requirements.find('django-cms<3.5') > -1)
+        self.assertTrue(conf_data.requirements.find(config.data.DJANGOCMS_35) > -1)
+        self.assertTrue(conf_data.requirements.find('Django<2.0') > -1)
 
     def disabled_test_aldryn_compatibility(self):
         with patch('sys.stdout', self.stdout):
@@ -754,10 +731,7 @@ class TestBaseConfig(unittest.TestCase):
     base_dir = os.path.dirname(os.path.dirname(__file__))
     config_dir = os.path.join(base_dir, 'tests/fixtures/configs')
     args = ['--config-file', '-s', '-q', 'example_prj']
-    if (3, 3) <= sys.version_info <= (3, 4):
-        django_version = '1.8'
-    else:
-        django_version = DJANGO_VERSION_MATRIX['lts']
+    django_version = DJANGO_VERSION_MATRIX['lts']
     config_fixture = Namespace(**{
         'bootstrap': False,
         'cms_version': CMS_VERSION_MATRIX['lts'],
@@ -822,18 +796,18 @@ class TestBaseConfig(unittest.TestCase):
         args = self.args[0:1] + [self.conf('config-01.ini')] + self.args[1:]
         config_data = config.parse(args)
         self.unused(config_data)
-        self.assertEqual(self.config_fixture, config_data)
+        self.assertEqual(self.config_fixture, config_data)  # Check if config value and changed value equals.
 
         test_data = [
-            ('config-02.ini', 'db', 'postgres://user:pwd@host:54321/dbname'),
-            ('config-03.ini', 'i18n', 'no'),
-            ('config-04.ini', 'use_timezone', 'no'),
-            ('config-05.ini', 'timezone', 'Europe/London'),
-            ('config-06.ini', 'reversion', 'no'),
-            ('config-07.ini', 'permissions', 'no'),
-            ('config-08.ini', None, (('i18n', 'no'), ('languages', ['ru']))),
+            ('config-02.ini', None, (('cms_version', '3.5'), ('db', 'postgres://user:pwd@host:54321/dbname'))),
+            ('config-03.ini', None, (('cms_version', '3.5'), ('i18n', 'no'))),
+            ('config-04.ini', None, (('cms_version', '3.5'), ('use_timezone', 'no'))),
+            ('config-05.ini', None, (('cms_version', '3.5'), ('timezone', 'Europe/London'))),
+            ('config-06.ini', None, (('cms_version', '3.5'), ('reversion', 'no'))),
+            ('config-07.ini', None, (('cms_version', '3.5'), ('permissions', 'no'))),
+            ('config-08.ini', None, (('cms_version', '3.4'), ('i18n', 'no'), ('languages', ['ru']))),
             ('config-09.ini', None, (('i18n', 'yes'), ('languages', ['en', 'ru']))),
-            ('config-10.ini', 'django_version', '1.8'),
+            ('config-10.ini', 'django_version', '1.11'),
             ('config-11.ini', 'project_directory', '/test/me'),
             ('config-12.ini', 'bootstrap', True),
             ('config-13.ini', 'templates', '.'),
diff --git a/tests/django.py b/tests/django.py
index 1b29424..cdbd93b 100644
--- a/tests/django.py
+++ b/tests/django.py
@@ -148,12 +148,12 @@ class TestDjango(IsolatedTestClass):
 
     @unittest.skipIf(sys.version_info[:2] not in ((2, 7), (3, 4), (3, 5), (3, 6),),
                      reason='django 1.9 only supports python 2.7, 3.4, 3.5 and 3.6')
-    def test_patch_19_32_settings(self):
+    def test_patch_19_34_settings(self):
         extra_path = os.path.join(os.path.dirname(__file__), 'data', 'extra_settings.py')
         config_data = config.parse(['--db=sqlite://localhost/test.db',
                                     '--lang=en', '--extra-settings=%s' % extra_path,
                                     '--django-version=1.9',
-                                    '--cms-version=3.2', '--timezone=Europe/Moscow',
+                                    '--cms-version=3.4', '--timezone=Europe/Moscow',
                                     '-q', '-u', '-zno', '--i18n=no',
                                     '-p' + self.project_dir, 'example_path_19_settings'])
         install.requirements(config_data.requirements)
@@ -179,11 +179,11 @@ class TestDjango(IsolatedTestClass):
 
     @unittest.skipIf(sys.version_info[:2] not in ((2, 7), (3, 4), (3, 5), (3, 6),),
                      reason='django 1.9 only supports python 2.7, 3.4, 3.5 and 3.6')
-    def test_patch_django_19_32(self):
+    def test_patch_django_19_34(self):
         config_data = config.parse(['--db=sqlite://localhost/test.db',
                                     '--lang=en', '--bootstrap=yes',
                                     '--django-version=1.9',
-                                    '--cms-version=3.2', '--timezone=Europe/Moscow',
+                                    '--cms-version=3.4', '--timezone=Europe/Moscow',
                                     '-q', '-u', '-zno', '--i18n=no',
                                     '-p' + self.project_dir, 'example_path_16'])
 
@@ -241,13 +241,13 @@ class TestDjango(IsolatedTestClass):
         self.assertEqual(len(re.findall('MEDIA_ROOT =', settings)), 1)
         self.assertEqual(len(re.findall('STATICFILES_DIRS', settings)), 1)
 
-    @unittest.skipIf(sys.version_info[:2] not in ((2, 7), (3, 3), (3, 4), (3, 5), (3, 6),),
+    @unittest.skipIf(sys.version_info[:2] not in ((2, 7), (3, 4), (3, 5), (3, 6),),
                      reason='django 1.8 only supports python 2.7, 3.3, 3.4, 3.5 and 3.6')
-    def test_patch_django_18_32(self):
+    def test_patch_django_18_34(self):
         extra_path = os.path.join(os.path.dirname(__file__), 'data', 'extra_settings.py')
         config_data = config.parse(['--db=sqlite://localhost/test.db',
                                     '--lang=en', '--extra-settings=%s' % extra_path,
-                                    '--django-version=1.8', '--cms-version=3.2',
+                                    '--django-version=1.8', '--cms-version=3.4',
                                     '--timezone=Europe/Moscow',
                                     '-q', '-u', '-zno', '--i18n=no',
                                     '-p' + self.project_dir, 'example_path_17_settings'])
@@ -265,17 +265,17 @@ class TestDjango(IsolatedTestClass):
         self.assertFalse('cms' in project.settings.MIGRATION_MODULES)
         self.assertFalse('djangocms_text_ckeditor' in project.settings.MIGRATION_MODULES)
 
-    @unittest.skipIf(sys.version_info[:2] not in ((2, 7), (3, 3), (3, 4), (3, 5), (3, 6),),
+    @unittest.skipIf(sys.version_info[:2] not in ((2, 7), (3, 4), (3, 5), (3, 6),),
                      reason='django 1.8 only supports python 2.7, 3.3, 3.4, 3.5 and 3.6')
     def test_patch_django_18_develop(self):
-        # On django CMS 3.2 the reload apphooks middleware is enabled by default
+        # On django CMS 3.4 the reload apphooks middleware is enabled by default
         extra_path = os.path.join(os.path.dirname(__file__), 'data', 'extra_settings.py')
         config_data = config.parse(['--db=sqlite://localhost/test.db',
                                     '--lang=en', '--extra-settings=%s' % extra_path,
                                     '--django-version=1.8', '-f',
                                     '--cms-version=develop', '--timezone=Europe/Moscow',
                                     '-q', '-u', '-zno', '--i18n=no',
-                                    '-p' + self.project_dir, 'example_path_18_32_settings'])
+                                    '-p' + self.project_dir, 'example_path_18_34_settings'])
         install.requirements(config_data.requirements)
         django.create_project(config_data)
         django.patch_settings(config_data)
@@ -300,14 +300,14 @@ class TestDjango(IsolatedTestClass):
     @unittest.skipIf(sys.version_info[:2] not in ((2, 7), (3, 4), (3, 5), (3, 6),),
                      reason='django 1.9 only supports python 2.7, 3.4, 3.5 and 3.6')
     def test_patch_django_19_develop(self):
-        # On django CMS 3.2 the reload apphooks middleware is enabled by default
+        # On django CMS 3.4 the reload apphooks middleware is enabled by default
         extra_path = os.path.join(os.path.dirname(__file__), 'data', 'extra_settings.py')
         config_data = config.parse(['--db=sqlite://localhost/test.db',
                                     '--lang=en', '--extra-settings=%s' % extra_path,
                                     '--django-version=1.9', '-f',
                                     '--cms-version=develop', '--timezone=Europe/Moscow',
                                     '-q', '-u', '-zno', '--i18n=no',
-                                    '-p' + self.project_dir, 'example_path_19_32_settings'])
+                                    '-p' + self.project_dir, 'example_path_19_34_settings'])
         install.requirements(config_data.requirements)
         django.create_project(config_data)
         django.patch_settings(config_data)
@@ -376,7 +376,7 @@ class TestDjango(IsolatedTestClass):
         config_data = config.parse(['--db=sqlite://localhost/test.db',
                                     '--lang=en',
                                     '--django-version=1.8',
-                                    '--cms-version=3.2', '--timezone=Europe/Moscow',
+                                    '--cms-version=3.4', '--timezone=Europe/Moscow',
                                     '-f', '-q', '-u', '-zno', '--i18n=no',
                                     '-p' + self.project_dir, 'example_path_patch'])
         install.requirements(config_data.requirements)
@@ -461,7 +461,7 @@ class TestDjango(IsolatedTestClass):
     def test_database_setup_filer(self):
         config_data = config.parse(['--db=sqlite://localhost/test.db',
                                     '-f', '-q', '-u', '--django-version=1.8',
-                                    '--cms-version=3.2',
+                                    '--cms-version=3.4',
                                     '-p' + self.project_dir, 'cms_project'])
         install.requirements(config_data.requirements)
         django.create_project(config_data)
@@ -505,7 +505,7 @@ class TestDjango(IsolatedTestClass):
     def test_starting_page(self):
         config_data = config.parse(['--db=sqlite://localhost/test.db',
                                     '-q', '-u', '--django-version=1.8',
-                                    '--cms-version=3.2', '--starting-page=yes',
+                                    '--cms-version=3.4', '--starting-page=yes',
                                     '-p' + self.project_dir, 'cms_project'])
         install.requirements(config_data.requirements)
         django.create_project(config_data)
diff --git a/tests/fixtures/configs/config-01.ini b/tests/fixtures/configs/config-01.ini
index 3fdd146..e7a4ef3 100644
--- a/tests/fixtures/configs/config-01.ini
+++ b/tests/fixtures/configs/config-01.ini
@@ -7,7 +7,7 @@ reversion = yes
 permissions = yes
 languages =
 django-version = lts
-cms-version = stable
+cms-version = 3.4
 parent-dir = .
 bootstrap = no
 templates = no
diff --git a/tests/fixtures/configs/config-09.ini b/tests/fixtures/configs/config-09.ini
index 07fc14e..7f74462 100644
--- a/tests/fixtures/configs/config-09.ini
+++ b/tests/fixtures/configs/config-09.ini
@@ -7,7 +7,7 @@ reversion = no
 permissions = no
 languages = en,ru
 django-version = lts
-cms-version = stable
+cms-version = lts
 parent-dir = .
 bootstrap = no
 templates = no
diff --git a/tests/fixtures/configs/config-10.ini b/tests/fixtures/configs/config-10.ini
index 3d25b7f..1d50043 100644
--- a/tests/fixtures/configs/config-10.ini
+++ b/tests/fixtures/configs/config-10.ini
@@ -6,8 +6,8 @@ timezone = Europe/London
 reversion = no
 permissions = no
 languages = en,ru
-django-version = 1.8
-cms-version = stable
+django-version = 1.11
+cms-version = lts
 parent-dir = .
 bootstrap = no
 templates = no
diff --git a/tests/main.py b/tests/main.py
index 2d2b4c0..4560431 100644
--- a/tests/main.py
+++ b/tests/main.py
@@ -28,7 +28,7 @@ class TestMain(IsolatedTestClass):
                                        'example_prj']
                 main.execute()
         stdout = self.stdout.getvalue()
-        self.assertTrue(stdout.find('Django<1.9') > -1)
+        self.assertTrue(stdout.find('Django<2.0') > -1)
         self.assertFalse(stdout.find('django-reversion') > -1)
         self.assertTrue(stdout.find('djangocms-text-ckeditor') > -1)
         self.assertTrue(stdout.find('djangocms-admin-style') > -1)
@@ -52,8 +52,7 @@ class TestMain(IsolatedTestClass):
                     '-q',
                     '--db=postgres://user:pwd@host/dbname',
                     '--i18n=no',
-                    '--cms-version=3.2',
-                    '--django-version=1.9',
+                    '--django-version=1.11',
                     '-f',
                     '-p'+self.project_dir,
                     'example_prj'])
@@ -68,8 +67,7 @@ class TestMain(IsolatedTestClass):
                     '-s',
                     '--db=postgres://user:pwd@host/dbname',
                     '--i18n=no',
-                    '--cms-version=3.2',
-                    '--django-version=1.9',
+                    '--django-version=1.11',
                     '-f',
                     '-p'+self.project_dir,
                     'example_prj'])