Skip to content

Commit

Permalink
Add support for django CMS 3.6 final
Browse files Browse the repository at this point in the history
  • Loading branch information
yakky committed Mar 5, 2019
1 parent 15904c3 commit 81a138b
Show file tree
Hide file tree
Showing 10 changed files with 101 additions and 66 deletions.
2 changes: 1 addition & 1 deletion djangocms_installer/config/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@
import pytz
import six

from . import data, ini
from .. import compat, utils
from ..utils import less_than_version, supported_versions
from . import data, ini
from .internal import DbAction, validate_project


Expand Down
15 changes: 8 additions & 7 deletions djangocms_installer/config/data.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,12 @@
DJANGOCMS_36 = 'django-cms>=3.6,<3.7'

if sys.version_info >= (3, 4):
DJANGOCMS_SUPPORTED = ('3.4', '3.5', 'stable', 'lts', 'develop')
DJANGOCMS_STABLE = '3.5'
DJANGOCMS_SUPPORTED = ('3.4', '3.5', '3.6', 'stable', 'lts', 'develop')
DJANGOCMS_STABLE = '3.6'
DJANGOCMS_LTS = '3.4'
else:
DJANGOCMS_SUPPORTED = ('3.4', '3.5', 'stable', 'lts', 'develop')
DJANGOCMS_STABLE = '3.5'
DJANGOCMS_SUPPORTED = ('3.4', '3.5', '3.6', 'stable', 'lts', 'develop')
DJANGOCMS_STABLE = '3.6'
DJANGOCMS_LTS = '3.4'
DJANGOCMS_DEFAULT = DJANGOCMS_STABLE

Expand Down Expand Up @@ -66,7 +66,7 @@
PACKAGE_MATRIX = {
'3.4': DJANGOCMS_34,
'3.5': DJANGOCMS_35,
'3.6': DJANGOCMS_DEVELOP,
'3.6': DJANGOCMS_36,
}

REQUIREMENTS = {
Expand Down Expand Up @@ -141,7 +141,7 @@
'plugins-3.5': [
'djangocms-text-ckeditor>3.6,<3.7',
'djangocms-link>=2.1,<2.2',
'djangocms-style>=2.0,<2.1',
'djangocms-snippet>=2.1,<2.2',
'djangocms-googlemap>=1.1,<1.2',
'djangocms-snippet>=2.0,<2.1',
'djangocms-video>=2.0,<2.1',
Expand All @@ -150,10 +150,11 @@
'djangocms-picture>=2.0,<2.1',
],
'plugins-3.6': [
'djangocms-text-ckeditor>=3.7',
'djangocms-text-ckeditor>=3.7,<3.8',
'djangocms-link>=2.3',
'djangocms-style>=2.1',
'djangocms-googlemap>=1.2',
'djangocms-snippet>=2.1,<2.2',
'djangocms-video>=2.0,<2.1',
'djangocms-column>=1.9',
'djangocms-file>=2.2,<3.0',
Expand Down
9 changes: 5 additions & 4 deletions docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,10 @@
import os
import sys

import sphinx.environment
from docutils.utils import get_source_line


# If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the
# documentation root, use os.path.abspath to make it absolute, like shown here.
Expand All @@ -23,10 +27,7 @@
cwd = os.getcwd()
parent = os.path.dirname(cwd)
sys.path.append(parent)

import djangocms_installer
import sphinx.environment
from docutils.utils import get_source_line
import djangocms_installer # isort:skip


def _warn_node(self, msg, node, *args, **kwargs):
Expand Down
4 changes: 3 additions & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,10 @@

import os
import sys

from setuptools import find_packages, setup

import djangocms_installer
from setuptools import setup, find_packages

if sys.argv[-1] == 'publish':
os.system('python setup.py sdist upload')
Expand Down
19 changes: 13 additions & 6 deletions tests/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,6 @@
from six import StringIO


if sys.version_info < (3, 4):
dj_ver = '1.8'
else:
dj_ver = '1.10'


SYSTEM_ACTIVATE = os.path.join(os.path.dirname(sys.executable), 'activate_this.py')


Expand Down Expand Up @@ -120,3 +114,16 @@ def setUp(self):
print('activating virtualenv', self.virtualenv_dir)
sys.executable = os.path.join(self.virtualenv_dir, 'bin', 'python')
os.environ['VIRTUAL_ENV'] = self.virtualenv_dir


def get_latest_django(latest_stable=False):
if sys.version_info < (3, 4) and not latest_stable:
dj_ver = '1.8'
match = 'Django<1.9'
elif sys.version_info < (3, 4) and latest_stable:
dj_ver = '1.11'
match = 'Django<2.0'
else:
dj_ver = '2.1'
match = 'Django<2.2'
return dj_ver, match
89 changes: 54 additions & 35 deletions tests/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,8 @@
from djangocms_installer.config.data import CMS_VERSION_MATRIX, DJANGO_VERSION_MATRIX
from djangocms_installer.install import check_install
from djangocms_installer.utils import less_than_version, supported_versions
from .base import BaseTestClass, unittest

from .base import BaseTestClass, unittest, get_latest_django


class TestConfig(BaseTestClass):
Expand All @@ -25,7 +26,7 @@ def test_default_config(self):

self.assertEqual(conf_data.project_name, 'example_prj')

self.assertEqual(conf_data.cms_version, '3.5')
self.assertEqual(conf_data.cms_version, '3.6')
self.assertEqual(conf_data.django_version, '1.11')
self.assertEqual(conf_data.i18n, 'yes')
self.assertEqual(conf_data.reversion, 'yes')
Expand All @@ -40,7 +41,23 @@ def test_default_config(self):
self.assertEqual(conf_data.requirements_file, None)

def test_cli_config(self):
dj_version = '1.8'
with self.assertRaises(SystemExit):
dj_version = '1.8'
config.parse([
'-q',
'--db=postgres://user:pwd@host/dbname',
'--cms-version=stable',
'--django-version={0}'.format(dj_version),
'--i18n=no',
'--reversion=no',
'--permissions=no',
'--use-tz=no',
'-tEurope/Rome',
'-len-CA', '-lde', '-lit',
'-p'+self.project_dir,
'example_prj'])

dj_version = '1.11'
conf_data = config.parse([
'-q',
'--db=postgres://user:pwd@host/dbname',
Expand All @@ -57,8 +74,8 @@ def test_cli_config(self):

self.assertEqual(conf_data.project_name, 'example_prj')

self.assertEqual(conf_data.cms_version, '3.5')
self.assertEqual(conf_data.django_version, '1.8')
self.assertEqual(conf_data.cms_version, '3.6')
self.assertEqual(conf_data.django_version, '1.11')
self.assertEqual(conf_data.i18n, 'yes')
self.assertEqual(conf_data.reversion, 'no')
self.assertEqual(conf_data.permissions, 'no')
Expand All @@ -69,12 +86,11 @@ def test_cli_config(self):
self.assertEqual(conf_data.db, 'postgres://user:pwd@host/dbname')
self.assertEqual(conf_data.db_driver, 'psycopg2')

dj_version = '1.11'
dj_version, dj_match = get_latest_django(latest_stable=True)
cms_version = 'develop'
conf_data = config.parse([
'-q',
'--db=postgres://user:pwd@host/dbname',
'--cms-version=stable',
'--django-version={0}'.format(dj_version),
'--cms-version={0}'.format(cms_version),
'--i18n=no',
Expand Down Expand Up @@ -131,7 +147,7 @@ def test_cli_config(self):
self.assertEqual(conf_data.db, 'postgres://user:pwd@host/dbname')
self.assertEqual(conf_data.db_driver, 'psycopg2')

def test_version_mismatch(self):
def test_version_misdj_match(self):
with self.assertRaises(SystemExit):
conf_data = config.parse([
'-q',
Expand Down Expand Up @@ -335,7 +351,7 @@ def test_latest_version(self):

def test_supported_versions(self):

self.assertEqual(supported_versions('stable', 'stable'), ('1.11', '3.5'))
self.assertEqual(supported_versions('stable', 'stable'), ('1.11', '3.6'))
self.assertEqual(supported_versions('stable', '3.1.10'), ('1.11', None))
self.assertEqual(supported_versions('stable', 'rc'), ('1.11', '3.6'))
self.assertEqual(supported_versions('stable', 'beta'), ('1.11', '3.6'))
Expand All @@ -348,16 +364,18 @@ def test_supported_versions(self):
with self.assertRaises(RuntimeError):
supported_versions('1.5', 'stable'), ('1.8', '3.1')

self.assertEqual(supported_versions('1.9', 'stable'), ('1.9', '3.5'))
self.assertEqual(supported_versions('1.8', 'stable'), ('1.8', '3.5'))
with self.assertRaises(RuntimeError):
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.9', '3.5'), ('1.9', '3.5'))
self.assertEqual(supported_versions('1.8', 'lts'), ('1.8', '3.4'))
self.assertEqual(supported_versions('1.8.3', 'stable'), (None, '3.5'))
self.assertEqual(supported_versions('1.8.3', 'stable'), (None, '3.6'))

def test_requirements(self):
"""
Test for different configuration and package versions
"""
dj_version = '1.8'
dj_version, dj_match = get_latest_django(latest_stable=False)
conf_data = config.parse([
'-q',
'--db=postgres://user:pwd@host/dbname',
Expand All @@ -368,7 +386,7 @@ def test_requirements(self):
'-p'+self.project_dir,
'example_prj'])
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(dj_match) > -1)
self.assertFalse(conf_data.requirements.find('django-reversion') > -1)
self.assertTrue(conf_data.requirements.find('djangocms-text-ckeditor>3.6,<3.7') > -1)
self.assertTrue(conf_data.requirements.find('djangocms-admin-style>=1.2') > -1)
Expand All @@ -387,12 +405,12 @@ def test_requirements(self):
'-p'+self.project_dir,
'example_prj'])

self.assertTrue(conf_data.requirements.find(config.data.DJANGOCMS_35) > -1)
self.assertTrue(conf_data.requirements.find(config.data.DJANGOCMS_36) > -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-admin-style') > -1)
self.assertTrue(conf_data.requirements.find('djangocms-text-ckeditor>3.6,<3.7') > -1)
self.assertTrue(conf_data.requirements.find('djangocms-text-ckeditor>=3.7,<3.8') > -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)
Expand All @@ -415,7 +433,7 @@ def test_requirements(self):
'-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_36) > -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)
Expand All @@ -433,8 +451,8 @@ def test_requirements(self):
self.assertTrue(conf_data.requirements.find('djangocms-teaser') == -1)
self.assertTrue(conf_data.requirements.find('djangocms-video') > -1)

dj_version = '1.8'
with self.assertRaises(SystemExit):
dj_version = '1.8'
conf_data = config.parse([
'-q',
'--db=postgres://user:pwd@host/dbname',
Expand All @@ -458,7 +476,7 @@ def test_requirements(self):
'-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_36) > -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('django-mptt') > -1)
Expand All @@ -476,7 +494,7 @@ def test_requirements(self):
'-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_36) > -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)
Expand Down Expand Up @@ -539,15 +557,15 @@ def test_requirements(self):
'-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_36) > -1)
self.assertTrue(conf_data.requirements.find('Django<2.0') > -1)
self.assertFalse(conf_data.requirements.find('django-reversion>=1.10,<1.11') > -1)
self.assertTrue(conf_data.requirements.find('djangocms-text-ckeditor') > -1)
self.assertTrue(conf_data.requirements.find('djangocms-admin-style') > -1)
self.assertTrue(conf_data.requirements.find('djangocms-teaser') == -1)
self.assertTrue(conf_data.requirements.find('south') == -1)

dj_version = '1.11'
dj_version, dj_match = get_latest_django(latest_stable=True)
conf_data = config.parse([
'-q',
'--db=postgres://user:pwd@host/dbname',
Expand All @@ -560,8 +578,8 @@ def test_requirements(self):
'-p'+self.project_dir,
'example_prj'])

self.assertTrue(conf_data.requirements.find(config.data.DJANGOCMS_DEVELOP) > -1)
self.assertTrue(conf_data.requirements.find('Django<2.0') > -1)
self.assertTrue(conf_data.requirements.find(config.data.DJANGOCMS_36) > -1)
self.assertTrue(conf_data.requirements.find(dj_match) > -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/archive/master') > -1)
Expand All @@ -581,7 +599,7 @@ def test_requirements(self):
'-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_36) > -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)
Expand All @@ -608,8 +626,8 @@ def test_requirements(self):
else:
conf_data = config.parse(requirements_21)

self.assertTrue(conf_data.requirements.find(config.data.DJANGOCMS_DEVELOP) > -1)
self.assertTrue(conf_data.requirements.find('Django<2.2') > -1)
self.assertTrue(conf_data.requirements.find(config.data.DJANGOCMS_36) > -1)
self.assertTrue(conf_data.requirements.find(dj_match) > -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/archive/master.zip') > -1)
Expand All @@ -635,7 +653,7 @@ def test_requirements(self):
'-p'+self.project_dir,
'example_prj'])

self.assertTrue(conf_data.requirements.find(config.data.DJANGOCMS_35) > -1)
self.assertTrue(conf_data.requirements.find(config.data.DJANGOCMS_36) > -1)
self.assertTrue(conf_data.requirements.find('Django<2.0') > -1)

def disabled_test_aldryn_compatibility(self):
Expand Down Expand Up @@ -804,7 +822,7 @@ def test_show_plugins(self):

def test_show_requirements(self):
sys.stdout = StringIO()
dj_version = '1.8'
dj_version = '1.11'
try:
conf_data = config.parse([
'-q',
Expand Down Expand Up @@ -886,17 +904,18 @@ def test_parse_config_file(self, *args):
self.assertEqual(7, error.exception.code)

args = self.args[0:1] + [self.conf('config-01.ini')] + self.args[1:]
print(args)
config_data = config.parse(args)
self.unused(config_data)
self.assertEqual(self.config_fixture, config_data) # Check if config value and changed value equals.

test_data = [
('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-02.ini', None, (('cms_version', '3.6'), ('db', 'postgres://user:pwd@host:54321/dbname'))),
('config-03.ini', None, (('cms_version', '3.6'), ('i18n', 'no'))),
('config-04.ini', None, (('cms_version', '3.6'), ('use_timezone', 'no'))),
('config-05.ini', None, (('cms_version', '3.6'), ('timezone', 'Europe/London'))),
('config-06.ini', None, (('cms_version', '3.6'), ('reversion', 'no'))),
('config-07.ini', None, (('cms_version', '3.6'), ('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.11'),
Expand Down
Loading

0 comments on commit 81a138b

Please sign in to comment.