Example #1
0
    def test_patch_django_111_36(self):
        dj_version, dj_match = get_latest_django(latest_1_x=True)

        config_data = config.parse(['--db=sqlite://localhost/test.db',
                                    '--lang=en', '--bootstrap=yes',
                                    '--django-version=%s' % dj_version,
                                    '--cms-version=3.6', '--timezone=Europe/Moscow',
                                    '-q', '-u', '-zno', '--i18n=no',
                                    '-p' + self.project_dir, 'test_patch_django_111_36'])

        install.requirements(config_data.requirements)
        django.create_project(config_data)
        django.patch_settings(config_data)
        django.copy_files(config_data)
        settings = open(config_data.settings_path).read()
        urlconf = open(config_data.urlconf_path).read()

        # settings is importable even in non django environment
        sys.path.append(config_data.project_directory)

        project = __import__(config_data.project_name, globals(), locals(), [str('settings')])

        # checking for django options
        self.assertEqual(
            project.settings.MEDIA_ROOT, os.path.join(config_data.project_directory, 'media')
        )
        self.assertEqual(project.settings.MEDIA_URL, '/media/')

        self.assertEqual(project.settings.TIME_ZONE, 'Europe/Moscow')
        self.assertTrue('cmsplugin_filer_image' not in project.settings.INSTALLED_APPS)
        self.assertTrue('cmsplugin_filer_file' not in project.settings.INSTALLED_APPS)
        self.assertTrue('cmsplugin_filer_folder' not in project.settings.INSTALLED_APPS)
        self.assertTrue('cmsplugin_filer_link' not in project.settings.INSTALLED_APPS)
        self.assertTrue('cmsplugin_filer_teaser' not in project.settings.INSTALLED_APPS)
        self.assertTrue('cmsplugin_filer_utils' not in project.settings.INSTALLED_APPS)
        self.assertTrue('cmsplugin_filer_video' not in project.settings.INSTALLED_APPS)
        self.assertTrue('djangocms_text_ckeditor' in project.settings.INSTALLED_APPS)
        self.assertTrue('djangocms_admin_style' in project.settings.INSTALLED_APPS)
        self.assertTrue('filer' in project.settings.INSTALLED_APPS)
        self.assertTrue('djangocms_bootstrap4' in project.settings.INSTALLED_APPS)
        self.assertTrue('djangocms_file' in project.settings.INSTALLED_APPS)
        self.assertTrue('djangocms_flash' not in project.settings.INSTALLED_APPS)
        self.assertTrue('djangocms_googlemap' in project.settings.INSTALLED_APPS)
        self.assertTrue('djangocms_inherit' not in project.settings.INSTALLED_APPS)
        self.assertTrue('djangocms_link' in project.settings.INSTALLED_APPS)
        self.assertTrue('djangocms_picture' in project.settings.INSTALLED_APPS)
        self.assertTrue('djangocms_style' in project.settings.INSTALLED_APPS)
        self.assertTrue('djangocms_teaser' not in project.settings.INSTALLED_APPS)
        self.assertTrue('djangocms_video' in project.settings.INSTALLED_APPS)
        self.assertTrue(
            config.get_settings().APPHOOK_RELOAD_MIDDLEWARE_CLASS in
            project.settings.MIDDLEWARE
        )
        self.assertEqual(set(project.settings.CMS_TEMPLATES), self.templates_bootstrap)

        self.assertTrue(project.settings.TEMPLATES)
        self.assertEqual(len(re.findall('BASE_DIR = ', settings)), 1)
        self.assertEqual(len(re.findall('STATIC_ROOT', settings)), 1)
        self.assertEqual(len(re.findall('MEDIA_ROOT =', settings)), 1)
        self.assertEqual(len(re.findall('STATICFILES_DIRS', settings)), 1)
Example #2
0
    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',
                                    '-p' + self.project_dir, 'cms_project'])
        install.requirements(config_data.requirements)
        django.create_project(config_data)
        django.patch_settings(config_data)
        django.copy_files(config_data)
        django.setup_database(config_data)
        django.load_starting_page(config_data)
        project_db = sqlite3.connect(os.path.join(config_data.project_directory, 'test.db'))

        # Check loaded data
        query = project_db.execute('SELECT * FROM cms_page')
        row = query.fetchone()
        self.assertTrue('fullwidth.html' in row)

        query = project_db.execute('SELECT * FROM cms_title')
        row = query.fetchone()
        self.assertTrue('Home' in row)

        query = project_db.execute('SELECT * FROM cms_cmsplugin')
        row = query.fetchone()
        self.assertTrue('TextPlugin' in row)
Example #3
0
    def test_patch_110_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.10',
                                    '--cms-version=3.4', '--timezone=Europe/Moscow',
                                    '-q', '-u', '-zno', '--i18n=no',
                                    '-p' + self.project_dir, 'example_path_110_settings'])
        install.requirements(config_data.requirements)
        django.create_project(config_data)
        django.patch_settings(config_data)
        django.copy_files(config_data)
        # settings is importable even in non django environment
        sys.path.append(config_data.project_directory)

        project = __import__(config_data.project_name, globals(), locals(), [str('settings')])

        # checking for django options
        self.assertEqual(project.settings.MEDIA_ROOT,
                         os.path.join(config_data.project_directory, 'media'))
        self.assertEqual(project.settings.MEDIA_URL, '/media/')

        # Data from external settings files
        self.assertIsNotNone(getattr(project.settings, 'MIDDLEWARE', None))
        self.assertIsNone(getattr(project.settings, 'MIDDLEWARE_CLASSES', None))
Example #4
0
    def test_patch_110_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.10',
            '--cms-version=3.4', '--timezone=Europe/Moscow', '-q', '-u',
            '-zno', '--i18n=no', '-p' + self.project_dir,
            'example_path_110_settings'
        ])
        install.requirements(config_data.requirements)
        django.create_project(config_data)
        django.patch_settings(config_data)
        django.copy_files(config_data)
        # settings is importable even in non django environment
        sys.path.append(config_data.project_directory)

        project = __import__(config_data.project_name, globals(), locals(),
                             [str('settings')])

        # checking for django options
        self.assertEqual(project.settings.MEDIA_ROOT,
                         os.path.join(config_data.project_directory, 'media'))
        self.assertEqual(project.settings.MEDIA_URL, '/media/')

        # Data from external settings files
        self.assertIsNotNone(getattr(project.settings, 'MIDDLEWARE', None))
        self.assertIsNone(getattr(project.settings, 'MIDDLEWARE_CLASSES',
                                  None))
Example #5
0
    def test_patch_19_32_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',
                                    '-q', '-u', '-zno', '--i18n=no',
                                    '-p' + self.project_dir, 'example_path_16_settigns'])
        install.requirements(config_data.requirements)
        django.create_project(config_data)
        django.patch_settings(config_data)
        django.copy_files(config_data)
        # settings is importable even in non django environment
        sys.path.append(config_data.project_directory)

        project = __import__(config_data.project_name, globals(), locals(), [str('settings')])

        # checking for django options
        self.assertEqual(project.settings.MEDIA_ROOT,
                         os.path.join(config_data.project_directory, 'media'))
        self.assertEqual(project.settings.MEDIA_URL, '/media/')

        # Data from external settings file
        self.assertEqual(project.settings.CUSTOM_SETTINGS_VAR, True)
        self.assertEqual(project.settings.CMS_PERMISSION, False)
        self.assertEqual(set(project.settings.CMS_TEMPLATES), self.templates_basic)
Example #6
0
    def disabled_test_setup_database_filer(self):
        config_data = config.parse(
            [
                "--db=sqlite://localhost/test.db",
                "-f",
                "-q",
                "-u",
                "--cms-version=develop",
                "-p" + self.project_dir,
                "cms_project",
            ]
        )
        install.requirements(config_data.requirements)
        django.create_project(config_data)
        django.patch_settings(config_data)
        django.copy_files(config_data)
        django.setup_database(config_data)
        project_db = sqlite3.connect(os.path.join(config_data.project_directory, "test.db"))

        # Checking content type table to check for correct applications setup
        query = project_db.execute('SELECT * FROM django_content_type WHERE app_label="cms" AND model="page"')
        self.assertEqual(query.fetchone()[1], "page")
        query = project_db.execute('SELECT * FROM django_content_type WHERE app_label="filer" AND model="image"')
        self.assertEqual(query.fetchone()[1], "image")

        # No data in CMS tables at setup time, but if query succeed database
        # schema should be fine
        query = project_db.execute("SELECT * FROM cms_page")
        self.assertTrue(query)
Example #7
0
    def test_patch_django_19_32(self):
        # On django CMS 3.2 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'
        ])
        install.requirements(config_data.requirements)
        django.create_project(config_data)
        django.patch_settings(config_data)
        django.copy_files(config_data)
        # settings is importable even in non django environment
        sys.path.append(config_data.project_directory)

        project = __import__(config_data.project_name, globals(), locals(),
                             [str('settings')])

        # checking for django options
        self.assertTrue(project.settings.TEMPLATES)
        self.assertFalse(getattr(project.settings, 'TEMPLATES_DIR', False))
        self.assertTrue(
            'aldryn_apphook_reload' not in project.settings.INSTALLED_APPS)
        self.assertTrue(
            config.get_settings().APPHOOK_RELOAD_MIDDLEWARE_CLASS_OLD not in
            project.settings.MIDDLEWARE_CLASSES)
        self.assertTrue(config.get_settings().APPHOOK_RELOAD_MIDDLEWARE_CLASS
                        in project.settings.MIDDLEWARE_CLASSES)
Example #8
0
    def test_patch_django_19_develop(self):
        # On django CMS 3.2 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'])
        install.requirements(config_data.requirements)
        django.create_project(config_data)
        django.patch_settings(config_data)
        django.copy_files(config_data)
        # settings is importable even in non django environment
        sys.path.append(config_data.project_directory)

        project = __import__(config_data.project_name, globals(), locals(), [str('settings')])

        # checking for django options
        self.assertTrue(project.settings.TEMPLATES)
        self.assertFalse(getattr(project.settings, 'TEMPLATES_DIR', False))
        self.assertTrue(
            config.get_settings().APPHOOK_RELOAD_MIDDLEWARE_CLASS_OLD not in
            project.settings.MIDDLEWARE_CLASSES
        )
        self.assertTrue(
            config.get_settings().APPHOOK_RELOAD_MIDDLEWARE_CLASS in
            project.settings.MIDDLEWARE_CLASSES
        )
Example #9
0
    def test_starting_page(self):
        dj_version, dj_match = get_stable_django()
        cms_stable, cms_match = get_stable_djangocms()

        config_data = config.parse([
            "--db=sqlite://localhost/test.db",
            "--cms-version=%s" % cms_stable,
            "-q",
            "-u",
            "--django-version=%s" % dj_version,
            "--starting-page=yes",
            "-p" + self.project_dir,
            "cms_project",
        ])
        install.requirements(config_data.requirements)
        django.create_project(config_data)
        django.patch_settings(config_data)
        django.copy_files(config_data)
        django.setup_database(config_data)
        django.load_starting_page(config_data)
        project_db = sqlite3.connect(
            os.path.join(config_data.project_directory, "test.db"))

        # Check loaded data
        query = project_db.execute("SELECT * FROM cms_page")
        row = query.fetchone()
        self.assertTrue("fullwidth.html" in row)

        query = project_db.execute("SELECT * FROM cms_title")
        row = query.fetchone()
        self.assertTrue("Home" in row)

        query = project_db.execute("SELECT * FROM cms_cmsplugin")
        row = query.fetchone()
        self.assertTrue("TextPlugin" in row)
Example #10
0
    def test_database_setup(self):
        config_data = config.parse(['--db=sqlite://localhost/test.db',
                                    '-q', '--cms-version=3.1', '--django=%s' % dj_ver,
                                    '-p'+self.project_dir, 'cms_project'])
        install.requirements(config_data.requirements)
        django.create_project(config_data)
        django.patch_settings(config_data)
        django.copy_files(config_data)
        django.setup_database(config_data)
        project_db = sqlite3.connect(os.path.join(config_data.project_directory, 'test.db'))

        # Checking content type table to check for correct applications setup
        query = project_db.execute('SELECT * FROM django_content_type WHERE app_label="cms" AND model="page"')
        row = query.fetchone()
        self.assertTrue('page' in row)
        self.assertTrue('cms' in row)

        # No data in CMS tables at setup time, but if query succeed database
        # schema should be fine
        query = project_db.execute('SELECT * FROM cms_page')
        self.assertTrue(query)

        # No data in auth tables at setup time due to the no-input
        query = project_db.execute('SELECT * FROM auth_user')
        self.assertTrue(query)
Example #11
0
    def test_starting_page(self):
        config_data = config.parse([
            '--db=sqlite://localhost/test.db', '-q', '-u',
            '--django-version=1.8', '--cms-version=3.4', '--starting-page=yes',
            '-p' + self.project_dir, 'cms_project'
        ])
        install.requirements(config_data.requirements)
        django.create_project(config_data)
        django.patch_settings(config_data)
        django.copy_files(config_data)
        django.setup_database(config_data)
        django.load_starting_page(config_data)
        project_db = sqlite3.connect(
            os.path.join(config_data.project_directory, 'test.db'))

        # Check loaded data
        query = project_db.execute('SELECT * FROM cms_page')
        row = query.fetchone()
        self.assertTrue('fullwidth.html' in row)

        query = project_db.execute('SELECT * FROM cms_title')
        row = query.fetchone()
        self.assertTrue('Home' in row)

        query = project_db.execute('SELECT * FROM cms_cmsplugin')
        row = query.fetchone()
        self.assertTrue('TextPlugin' in row)
    def test_database_setup(self):
        config_data = config.parse([
            '--db=sqlite://localhost/test.db', '-q', '--cms-version=3.1',
            '--django=%s' % dj_ver, '-p' + self.project_dir, 'cms_project'
        ])
        install.requirements(config_data.requirements)
        django.create_project(config_data)
        django.patch_settings(config_data)
        django.copy_files(config_data)
        django.setup_database(config_data)
        project_db = sqlite3.connect(
            os.path.join(config_data.project_directory, 'test.db'))

        # Checking content type table to check for correct applications setup
        query = project_db.execute(
            'SELECT * FROM django_content_type WHERE app_label="cms" AND model="page"'
        )
        self.assertEqual(query.fetchone()[1], 'page')

        # No data in CMS tables at setup time, but if query succeed database
        # schema should be fine
        query = project_db.execute('SELECT * FROM cms_page')
        self.assertTrue(query)

        # No data in auth tables at setup time due to the no-input
        query = project_db.execute('SELECT * FROM auth_user')
        self.assertTrue(query)
Example #13
0
    def test_patch_16_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.6',
            '--cms-version=3.0', '--timezone=Europe/Moscow', '-q', '-u',
            '-zno', '--i18n=no', '-p' + self.project_dir,
            'example_path_16_settigns'
        ])
        install.requirements(config_data.requirements)
        django.create_project(config_data)
        django.patch_settings(config_data)
        django.copy_files(config_data)
        # settings is importable even in non django environment
        sys.path.append(config_data.project_directory)

        project = __import__(config_data.project_name, globals(), locals(),
                             [str('settings')])

        # checking for django options
        self.assertEqual(project.settings.MEDIA_ROOT,
                         os.path.join(config_data.project_directory, 'media'))
        self.assertEqual(project.settings.MEDIA_URL, '/media/')

        # Data from external settings file
        self.assertEqual(project.settings.CUSTOM_SETTINGS_VAR, True)
        self.assertEqual(project.settings.CMS_PERMISSION, False)
        self.assertEqual(set(project.settings.CMS_TEMPLATES),
                         self.templates_basic)
Example #14
0
    def test_patch_django_17_31(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.7', '-f',
            '--cms-version=3.1', '--timezone=Europe/Moscow', '-q', '-u',
            '-zno', '--i18n=no', '-p' + self.project_dir,
            'example_path_17_31_settings'
        ])
        install.requirements(config_data.requirements)
        django.create_project(config_data)
        django.patch_settings(config_data)
        django.copy_files(config_data)
        # settings is importable even in non django environment
        sys.path.append(config_data.project_directory)

        project = __import__(config_data.project_name, globals(), locals(),
                             [str('settings')])

        # checking for django options
        self.assertFalse('south' in project.settings.INSTALLED_APPS)
        self.assertFalse('filer' in project.settings.MIGRATION_MODULES)
        self.assertFalse(
            'djangocms_text_ckeditor' in project.settings.MIGRATION_MODULES)
Example #15
0
    def test_patch_django_30_develop(self):
        extra_path = os.path.join(os.path.dirname(__file__), "data",
                                  "extra_settings.py")
        params = [
            "--db=sqlite://localhost/test.db",
            "--lang=en",
            "--extra-settings=%s" % extra_path,
            "--django-version=3.0",
            "-f",
            "--cms-version=develop",
            "--timezone=Europe/Moscow",
            "-q",
            "-u",
            "-zno",
            "--i18n=no",
            "-p" + self.project_dir,
            "test_patch_django_30_develop",
        ]
        config_data = config.parse(params)
        install.requirements(config_data.requirements)
        django.create_project(config_data)
        django.patch_settings(config_data)
        django.copy_files(config_data)
        # settings is importable even in non django environment
        sys.path.append(config_data.project_directory)

        project = __import__(config_data.project_name, globals(), locals(),
                             ["settings"])

        # checking for django options
        self.assertTrue(project.settings.TEMPLATES)
        self.assertFalse(getattr(project.settings, "TEMPLATES_DIR", False))
        self.assertTrue(config.get_settings().APPHOOK_RELOAD_MIDDLEWARE_CLASS
                        in project.settings.MIDDLEWARE)
Example #16
0
    def test_patch_cms_24_filer(self):
        config_data = config.parse([
            '--db=sqlite://localhost/test.db', '--lang=en',
            '--django-version=1.5', '--cms-version=2.4', '-f', '-q', '-u',
            '-zno', '--i18n=no', '-p' + self.project_dir, 'example_path_24_f'
        ])
        reqs = config_data.requirements.replace('django-mptt>=0.5.1,<0.5.3',
                                                '')
        install.requirements(config_data.requirements)
        django.create_project(config_data)
        django.patch_settings(config_data)
        django.copy_files(config_data)
        settings = open(config_data.settings_path).read()
        urlconf = open(config_data.urlconf_path).read()

        # settings is importable even in non django environment
        sys.path.append(config_data.project_directory)

        project = __import__(config_data.project_name, globals(), locals(),
                             ['settings'])

        ## checking for django options
        self.assertTrue(project.settings.MEDIA_ROOT,
                        os.path.join(config_data.project_directory, 'media'))
        self.assertEqual(project.settings.MEDIA_URL, '/media/')
        self.assertTrue(
            'djangocms_file' not in project.settings.INSTALLED_APPS)
        self.assertTrue(
            'djangocms_flash' not in project.settings.INSTALLED_APPS)
        self.assertTrue(
            'djangocms_googlemap' not in project.settings.INSTALLED_APPS)
        self.assertTrue(
            'djangocms_inherit' not in project.settings.INSTALLED_APPS)
        self.assertTrue(
            'djangocms_link' not in project.settings.INSTALLED_APPS)
        self.assertTrue(
            'djangocms_picture' not in project.settings.INSTALLED_APPS)
        self.assertTrue(
            'djangocms_teaser' not in project.settings.INSTALLED_APPS)
        self.assertTrue(
            'djangocms_video' not in project.settings.INSTALLED_APPS)
        self.assertTrue(
            'cmsplugin_filer_image' in project.settings.INSTALLED_APPS)
        self.assertTrue('cms.plugins.flash' in project.settings.INSTALLED_APPS)
        self.assertTrue(
            'cms.plugins.googlemap' in project.settings.INSTALLED_APPS)
        self.assertTrue(
            'cms.plugins.inherit' in project.settings.INSTALLED_APPS)
        self.assertTrue(
            'cmsplugin_filer_file' in project.settings.INSTALLED_APPS)
        self.assertTrue(
            'cmsplugin_filer_folder' in project.settings.INSTALLED_APPS)
        self.assertTrue(
            'cmsplugin_filer_link' in project.settings.INSTALLED_APPS)
        self.assertTrue(
            'cmsplugin_filer_teaser' in project.settings.INSTALLED_APPS)
        self.assertTrue(
            'cmsplugin_filer_utils' in project.settings.INSTALLED_APPS)
        self.assertTrue(
            'cmsplugin_filer_video' in project.settings.INSTALLED_APPS)
Example #17
0
    def test_patch_django_20_develop(self):
        extra_path = os.path.join(os.path.dirname(__file__), 'data',
                                  'extra_settings.py')
        params = [
            '--db=sqlite://localhost/test.db', '--lang=en',
            '--extra-settings=%s' % extra_path, '--django-version=2.0', '-f',
            '--cms-version=develop', '--timezone=Europe/Moscow', '-q', '-u',
            '-zno', '--i18n=no', '-p' + self.project_dir,
            'example_path_20_develop_settings'
        ]
        config_data = config.parse(params)
        install.requirements(config_data.requirements)
        django.create_project(config_data)
        django.patch_settings(config_data)
        django.copy_files(config_data)
        # settings is importable even in non django environment
        sys.path.append(config_data.project_directory)

        project = __import__(config_data.project_name, globals(), locals(),
                             [str('settings')])

        # checking for django options
        self.assertTrue(project.settings.TEMPLATES)
        self.assertFalse(getattr(project.settings, 'TEMPLATES_DIR', False))
        self.assertTrue(
            config.get_settings().APPHOOK_RELOAD_MIDDLEWARE_CLASS_OLD not in
            project.settings.MIDDLEWARE)
        self.assertTrue(config.get_settings().APPHOOK_RELOAD_MIDDLEWARE_CLASS
                        in project.settings.MIDDLEWARE)
Example #18
0
    def test_patch_cms_24_standard(self):
        config_data = config.parse([
            '--db=sqlite://localhost/test.db', '--lang=en',
            '--django-version=1.5', '--cms-version=2.4', '-q', '-u', '-zno',
            '--i18n=no', '-p' + self.project_dir, 'example_path_24_s'
        ])

        install.requirements(config_data.requirements)
        django.create_project(config_data)
        django.patch_settings(config_data)
        django.copy_files(config_data)
        settings = open(config_data.settings_path).read()
        urlconf = open(config_data.urlconf_path).read()

        # settings is importable even in non django environment
        sys.path.append(config_data.project_directory)

        project = __import__(config_data.project_name, globals(), locals(),
                             [str('settings')])

        # checking for django options
        self.assertTrue(project.settings.MEDIA_ROOT,
                        os.path.join(config_data.project_directory, 'media'))
        self.assertEqual(project.settings.MEDIA_URL, '/media/')
        self.assertTrue('cms.context_processors.cms_settings' not in
                        project.settings.TEMPLATE_CONTEXT_PROCESSORS)
        self.assertTrue('cms.context_processors.media' in
                        project.settings.TEMPLATE_CONTEXT_PROCESSORS)
        self.assertTrue(
            'djangocms_file' not in project.settings.INSTALLED_APPS)
        self.assertTrue(
            'djangocms_flash' not in project.settings.INSTALLED_APPS)
        self.assertTrue(
            'djangocms_googlemap' not in project.settings.INSTALLED_APPS)
        self.assertTrue(
            'djangocms_inherit' not in project.settings.INSTALLED_APPS)
        self.assertTrue(
            'djangocms_link' not in project.settings.INSTALLED_APPS)
        self.assertTrue(
            'djangocms_picture' not in project.settings.INSTALLED_APPS)
        self.assertTrue(
            'djangocms_teaser' not in project.settings.INSTALLED_APPS)
        self.assertTrue(
            'djangocms_video' not in project.settings.INSTALLED_APPS)
        self.assertTrue('cms.plugins.file' in project.settings.INSTALLED_APPS)
        self.assertTrue('cms.plugins.flash' in project.settings.INSTALLED_APPS)
        self.assertTrue(
            'cms.plugins.googlemap' in project.settings.INSTALLED_APPS)
        self.assertTrue(
            'cms.plugins.inherit' in project.settings.INSTALLED_APPS)
        self.assertTrue('cms.plugins.link' in project.settings.INSTALLED_APPS)
        self.assertTrue(
            'cms.plugins.picture' in project.settings.INSTALLED_APPS)
        self.assertTrue(
            'cms.plugins.teaser' in project.settings.INSTALLED_APPS)
        self.assertTrue('cms.plugins.text' in project.settings.INSTALLED_APPS)
        self.assertTrue(
            'cms.plugins.twitter' in project.settings.INSTALLED_APPS)
        self.assertTrue('cms.plugins.video' in project.settings.INSTALLED_APPS)
Example #19
0
    def test_patch_16(self):
        config_data = config.parse(
            [
                "--db=sqlite://localhost/test.db",
                "--lang=en",
                "--django-version=1.6",
                "--cms-version=3.0",
                "-q",
                "-u",
                "-zno",
                "--i18n=no",
                "-p" + self.project_dir,
                "example_path_16",
            ]
        )

        install.requirements(config_data.requirements)
        django.create_project(config_data)
        django.patch_settings(config_data)
        django.copy_files(config_data)
        settings = open(config_data.settings_path).read()
        urlconf = open(config_data.urlconf_path).read()

        # settings is importable even in non django environment
        sys.path.append(config_data.project_directory)

        project = __import__(config_data.project_name, globals(), locals(), ["settings"])

        ## checking for django options
        self.assertTrue(project.settings.MEDIA_ROOT, os.path.join(config_data.project_directory, "media"))
        self.assertEqual(project.settings.MEDIA_URL, "/media/")

        self.assertTrue("cmsplugin_filer_image" not in project.settings.INSTALLED_APPS)
        self.assertTrue("cmsplugin_filer_file" not in project.settings.INSTALLED_APPS)
        self.assertTrue("cmsplugin_filer_folder" not in project.settings.INSTALLED_APPS)
        self.assertTrue("cmsplugin_filer_link" not in project.settings.INSTALLED_APPS)
        self.assertTrue("cmsplugin_filer_teaser" not in project.settings.INSTALLED_APPS)
        self.assertTrue("cmsplugin_filer_utils" not in project.settings.INSTALLED_APPS)
        self.assertTrue("cmsplugin_filer_video" not in project.settings.INSTALLED_APPS)
        self.assertTrue("djangocms_text_ckeditor" in project.settings.INSTALLED_APPS)
        self.assertTrue("djangocms_admin_style" in project.settings.INSTALLED_APPS)
        self.assertTrue("filer" not in project.settings.INSTALLED_APPS)
        self.assertTrue("djangocms_column" in project.settings.INSTALLED_APPS)
        self.assertTrue("djangocms_file" in project.settings.INSTALLED_APPS)
        self.assertTrue("djangocms_flash" in project.settings.INSTALLED_APPS)
        self.assertTrue("djangocms_googlemap" in project.settings.INSTALLED_APPS)
        self.assertTrue("djangocms_inherit" in project.settings.INSTALLED_APPS)
        self.assertTrue("djangocms_link" in project.settings.INSTALLED_APPS)
        self.assertTrue("djangocms_picture" in project.settings.INSTALLED_APPS)
        self.assertTrue("djangocms_style" in project.settings.INSTALLED_APPS)
        self.assertTrue("djangocms_teaser" in project.settings.INSTALLED_APPS)
        self.assertTrue("djangocms_video" in project.settings.INSTALLED_APPS)

        self.assertEqual(len(re.findall("BASE_DIR = ", settings)), 1)
        self.assertEqual(len(re.findall("STATIC_ROOT", settings)), 1)
        self.assertEqual(len(re.findall("MEDIA_ROOT =", settings)), 1)
        self.assertEqual(len(re.findall("STATICFILES_DIRS", settings)), 2)
Example #20
0
    def test_patch_django_16(self):
        config_data = config.parse(['--db=sqlite://localhost/test.db',
                                    '--lang=en', '--bootstrap=yes',
                                    '--django-version=1.6', '--apphooks-reload',
                                    '--cms-version=3.0', '--timezone=Europe/Moscow',
                                    '-q', '-u', '-zno', '--i18n=no',
                                    '-p'+self.project_dir, 'example_path_16'])

        install.requirements(config_data.requirements)
        django.create_project(config_data)
        django.patch_settings(config_data)
        django.copy_files(config_data)
        settings = open(config_data.settings_path).read()
        urlconf = open(config_data.urlconf_path).read()

        # settings is importable even in non django environment
        sys.path.append(config_data.project_directory)

        project = __import__(config_data.project_name, globals(), locals(), [str('settings')])

        # checking for django options
        self.assertEqual(project.settings.MEDIA_ROOT, os.path.join(config_data.project_directory, 'media'))
        self.assertEqual(project.settings.MEDIA_URL, '/media/')

        self.assertEqual(project.settings.TIME_ZONE, 'Europe/Moscow')
        self.assertTrue('cmsplugin_filer_image' not in project.settings.INSTALLED_APPS)
        self.assertTrue('cmsplugin_filer_file' not in project.settings.INSTALLED_APPS)
        self.assertTrue('cmsplugin_filer_folder' not in project.settings.INSTALLED_APPS)
        self.assertTrue('cmsplugin_filer_link' not in project.settings.INSTALLED_APPS)
        self.assertTrue('cmsplugin_filer_teaser' not in project.settings.INSTALLED_APPS)
        self.assertTrue('cmsplugin_filer_utils' not in project.settings.INSTALLED_APPS)
        self.assertTrue('cmsplugin_filer_video' not in project.settings.INSTALLED_APPS)
        self.assertTrue('djangocms_text_ckeditor' in project.settings.INSTALLED_APPS)
        self.assertTrue('djangocms_admin_style' in project.settings.INSTALLED_APPS)
        self.assertTrue('filer' not in project.settings.INSTALLED_APPS)
        self.assertTrue('djangocms_column' in project.settings.INSTALLED_APPS)
        self.assertTrue('djangocms_file' in project.settings.INSTALLED_APPS)
        self.assertTrue('djangocms_flash' in project.settings.INSTALLED_APPS)
        self.assertTrue('djangocms_googlemap' in project.settings.INSTALLED_APPS)
        self.assertTrue('djangocms_inherit' in project.settings.INSTALLED_APPS)
        self.assertTrue('djangocms_link' in project.settings.INSTALLED_APPS)
        self.assertTrue('djangocms_picture' in project.settings.INSTALLED_APPS)
        self.assertTrue('djangocms_style' in project.settings.INSTALLED_APPS)
        self.assertTrue('djangocms_teaser' in project.settings.INSTALLED_APPS)
        self.assertTrue('djangocms_video' in project.settings.INSTALLED_APPS)
        self.assertTrue('aldryn_apphook_reload' in project.settings.INSTALLED_APPS)
        self.assertTrue(config.get_settings().APPHOOK_RELOAD_MIDDLEWARE_CLASS_OLD in project.settings.MIDDLEWARE_CLASSES)
        self.assertTrue(config.get_settings().APPHOOK_RELOAD_MIDDLEWARE_CLASS not in project.settings.MIDDLEWARE_CLASSES)
        self.assertTrue('cms.context_processors.cms_settings' in project.settings.TEMPLATE_CONTEXT_PROCESSORS)
        self.assertTrue('cms.context_processors.media' not in project.settings.TEMPLATE_CONTEXT_PROCESSORS)

        self.assertEqual(set(project.settings.CMS_TEMPLATES), self.templates_bootstrap)

        self.assertEqual(len(re.findall('BASE_DIR = ', settings)), 1)
        self.assertEqual(len(re.findall('STATIC_ROOT', settings)), 1)
        self.assertEqual(len(re.findall('MEDIA_ROOT =', settings)), 1)
        self.assertEqual(len(re.findall('STATICFILES_DIRS', settings)), 1)
Example #21
0
    def test_patch_django_111_no_plugins(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.11', '-f',
            '--no-plugins',
            '--cms-version=%s' % cms_stable, '--timezone=Europe/Moscow', '-q',
            '-u', '-zno', '--i18n=no', '-p' + self.project_dir,
            'test_patch_django_111_no_plugins'
        ])
        install.requirements(config_data.requirements)
        django.create_project(config_data)
        django.patch_settings(config_data)
        django.copy_files(config_data)
        # settings is importable even in non django environment
        sys.path.append(config_data.project_directory)

        project = __import__(config_data.project_name, globals(), locals(),
                             [str('settings')])

        # checking for django options
        self.assertTrue(project.settings.TEMPLATES)
        self.assertFalse(getattr(project.settings, 'TEMPLATES_DIR', False))
        self.assertFalse('djangocms_file' in project.settings.INSTALLED_APPS)
        self.assertFalse('djangocms_flash' in project.settings.INSTALLED_APPS)
        self.assertFalse(
            'djangocms_googlemap' in project.settings.INSTALLED_APPS)
        self.assertFalse(
            'djangocms_inherit' in project.settings.INSTALLED_APPS)
        self.assertFalse('djangocms_link' in project.settings.INSTALLED_APPS)
        self.assertFalse(
            'djangocms_picture' in project.settings.INSTALLED_APPS)
        self.assertFalse('djangocms_teaser' in project.settings.INSTALLED_APPS)
        self.assertFalse('djangocms_video' in project.settings.INSTALLED_APPS)
        self.assertFalse('cms.plugins.file' in project.settings.INSTALLED_APPS)
        self.assertFalse(
            'cms.plugins.flash' in project.settings.INSTALLED_APPS)
        self.assertFalse(
            'cms.plugins.googlemap' in project.settings.INSTALLED_APPS)
        self.assertFalse(
            'cms.plugins.inherit' in project.settings.INSTALLED_APPS)
        self.assertFalse('cms.plugins.link' in project.settings.INSTALLED_APPS)
        self.assertFalse(
            'cms.plugins.picture' in project.settings.INSTALLED_APPS)
        self.assertFalse(
            'cms.plugins.teaser' in project.settings.INSTALLED_APPS)
        self.assertFalse('cms.plugins.text' in project.settings.INSTALLED_APPS)
        self.assertFalse(
            'cms.plugins.twitter' in project.settings.INSTALLED_APPS)
        self.assertFalse(
            'cms.plugins.video' in project.settings.INSTALLED_APPS)
Example #22
0
    def test_database_setup_filer(self):
        dj_version, dj_match = get_stable_django()
        cms_stable, cms_match = get_stable_djangocms()

        config_data = config.parse([
            "--db=sqlite://localhost/test.db",
            "--cms-version=%s" % cms_stable,
            "-f",
            "-q",
            "-u",
            "--django-version=%s" % dj_version,
            "-p" + self.project_dir,
            "cms_project",
        ])
        install.requirements(config_data.requirements)
        django.create_project(config_data)
        django.patch_settings(config_data)
        django.copy_files(config_data)
        django.setup_database(config_data)
        project_db = sqlite3.connect(
            os.path.join(config_data.project_directory, "test.db"))

        # Checking content type table to check for correct applications setup
        query = project_db.execute(
            'SELECT * FROM django_content_type WHERE app_label="cms" AND model="page"'
        )
        row = query.fetchone()
        self.assertTrue("page" in row)
        self.assertTrue("cms" in row)

        # No data in CMS tables at setup time, but if query succeed database
        # schema should be fine
        query = project_db.execute("SELECT * FROM cms_page")
        self.assertTrue(query)

        # No data in auth tables at setup time due to the no-input
        query = project_db.execute("SELECT * FROM auth_user")
        self.assertTrue(query)

        # No data in CMS tables at setup time, but if query succeed database
        # schema should be fine
        query = project_db.execute("SELECT * FROM cms_page")
        self.assertTrue(query)

        # Check filer data
        query = project_db.execute(
            'SELECT * FROM django_content_type WHERE app_label="filer" AND model="image"'
        )
        row = query.fetchone()
        self.assertTrue("filer" in row)
        self.assertTrue("image" in row)
Example #23
0
    def test_patch(self):
        config_data = config.parse(
            [
                "--db=sqlite://localhost/test.db",
                "--lang=en",
                "--cms-version=develop",
                "-f",
                "-q",
                "-u",
                "-zno",
                "--i18n=no",
                "-p" + self.project_dir,
                "example_patch",
            ]
        )
        install.requirements(config_data.requirements)
        django.create_project(config_data)
        django.patch_settings(config_data)
        django.copy_files(config_data)
        settings = open(config_data.settings_path).read()
        urlconf = open(config_data.urlconf_path).read()

        # settings is importable even in non django environment
        sys.path.append(config_data.project_directory)

        project = __import__(config_data.project_name, globals(), locals(), ["settings"])

        ## checking for django options
        self.assertFalse(project.settings.USE_L10N)
        self.assertFalse(project.settings.USE_TZ)
        self.assertEqual(project.settings.LANGUAGE_CODE, "en")
        #
        ## checking for standard CMS settings
        self.assertTrue("sekizai.context_processors.sekizai" in project.settings.TEMPLATE_CONTEXT_PROCESSORS)
        self.assertTrue("cms.middleware.toolbar.ToolbarMiddleware" in project.settings.MIDDLEWARE_CLASSES)
        self.assertTrue(project.settings.CMS_LANGUAGES["default"]["redirect_on_fallback"])
        self.assertEqual(project.settings.CMS_LANGUAGES[1][0]["code"], "en")

        ## checking for filer (optional) settings
        self.assertTrue("filer" in project.settings.INSTALLED_APPS)
        self.assertTrue("easy_thumbnails" in project.settings.INSTALLED_APPS)
        self.assertTrue(hasattr(project.settings, "THUMBNAIL_PROCESSORS"))

        ## basic urlconf check
        self.assertTrue("cms.urls" in urlconf)
        self.assertTrue("staticfiles_urlpatterns" in urlconf)

        sys.path.remove(config_data.project_directory)
        del project
        del (sys.modules["%s.settings" % config_data.project_name])
Example #24
0
    def test_patch_24_standard(self):
        config_data = config.parse(
            [
                "--db=sqlite://localhost/test.db",
                "--lang=en",
                "--django-version=1.5",
                "--cms-version=2.4",
                "-q",
                "-u",
                "-zno",
                "--i18n=no",
                "-p" + self.project_dir,
                "example_path_24_s",
            ]
        )

        install.requirements(config_data.requirements)
        django.create_project(config_data)
        django.patch_settings(config_data)
        django.copy_files(config_data)
        settings = open(config_data.settings_path).read()
        urlconf = open(config_data.urlconf_path).read()

        # settings is importable even in non django environment
        sys.path.append(config_data.project_directory)

        project = __import__(config_data.project_name, globals(), locals(), ["settings"])

        ## checking for django options
        self.assertTrue(project.settings.MEDIA_ROOT, os.path.join(config_data.project_directory, "media"))
        self.assertEqual(project.settings.MEDIA_URL, "/media/")
        self.assertTrue("djangocms_file" not in project.settings.INSTALLED_APPS)
        self.assertTrue("djangocms_flash" not in project.settings.INSTALLED_APPS)
        self.assertTrue("djangocms_googlemap" not in project.settings.INSTALLED_APPS)
        self.assertTrue("djangocms_inherit" not in project.settings.INSTALLED_APPS)
        self.assertTrue("djangocms_link" not in project.settings.INSTALLED_APPS)
        self.assertTrue("djangocms_picture" not in project.settings.INSTALLED_APPS)
        self.assertTrue("djangocms_teaser" not in project.settings.INSTALLED_APPS)
        self.assertTrue("djangocms_video" not in project.settings.INSTALLED_APPS)
        self.assertTrue("cms.plugins.file" in project.settings.INSTALLED_APPS)
        self.assertTrue("cms.plugins.flash" in project.settings.INSTALLED_APPS)
        self.assertTrue("cms.plugins.googlemap" in project.settings.INSTALLED_APPS)
        self.assertTrue("cms.plugins.inherit" in project.settings.INSTALLED_APPS)
        self.assertTrue("cms.plugins.link" in project.settings.INSTALLED_APPS)
        self.assertTrue("cms.plugins.picture" in project.settings.INSTALLED_APPS)
        self.assertTrue("cms.plugins.teaser" in project.settings.INSTALLED_APPS)
        self.assertTrue("cms.plugins.text" in project.settings.INSTALLED_APPS)
        self.assertTrue("cms.plugins.twitter" in project.settings.INSTALLED_APPS)
        self.assertTrue("cms.plugins.video" in project.settings.INSTALLED_APPS)
Example #25
0
    def test_patch_cms_24_standard(self):
        config_data = config.parse(['--db=sqlite://localhost/test.db',
                                    '--lang=en',
                                    '--django-version=1.5',
                                    '--cms-version=2.4',
                                    '-q', '-u', '-zno', '--i18n=no',
                                    '-p' + self.project_dir, 'example_path_24_s'])

        install.requirements(config_data.requirements)
        django.create_project(config_data)
        django.patch_settings(config_data)
        django.copy_files(config_data)
        settings = open(config_data.settings_path).read()
        urlconf = open(config_data.urlconf_path).read()

        # settings is importable even in non django environment
        sys.path.append(config_data.project_directory)

        project = __import__(config_data.project_name, globals(), locals(), [str('settings')])

        # checking for django options
        self.assertTrue(project.settings.MEDIA_ROOT,
                        os.path.join(config_data.project_directory, 'media'))
        self.assertEqual(project.settings.MEDIA_URL, '/media/')
        self.assertTrue(
            'cms.context_processors.cms_settings' not in project.settings.TEMPLATE_CONTEXT_PROCESSORS)
        self.assertTrue(
            'cms.context_processors.media' in project.settings.TEMPLATE_CONTEXT_PROCESSORS)
        self.assertTrue('djangocms_file' not in project.settings.INSTALLED_APPS)
        self.assertTrue('djangocms_flash' not in project.settings.INSTALLED_APPS)
        self.assertTrue('djangocms_googlemap' not in project.settings.INSTALLED_APPS)
        self.assertTrue('djangocms_inherit' not in project.settings.INSTALLED_APPS)
        self.assertTrue('djangocms_link' not in project.settings.INSTALLED_APPS)
        self.assertTrue('djangocms_picture' not in project.settings.INSTALLED_APPS)
        self.assertTrue('djangocms_teaser' not in project.settings.INSTALLED_APPS)
        self.assertTrue('djangocms_video' not in project.settings.INSTALLED_APPS)
        self.assertTrue('cms.plugins.file' in project.settings.INSTALLED_APPS)
        self.assertTrue('cms.plugins.flash' in project.settings.INSTALLED_APPS)
        self.assertTrue('cms.plugins.googlemap' in project.settings.INSTALLED_APPS)
        self.assertTrue('cms.plugins.inherit' in project.settings.INSTALLED_APPS)
        self.assertTrue('cms.plugins.link' in project.settings.INSTALLED_APPS)
        self.assertTrue('cms.plugins.picture' in project.settings.INSTALLED_APPS)
        self.assertTrue('cms.plugins.teaser' in project.settings.INSTALLED_APPS)
        self.assertTrue('cms.plugins.text' in project.settings.INSTALLED_APPS)
        self.assertTrue('cms.plugins.twitter' in project.settings.INSTALLED_APPS)
        self.assertTrue('cms.plugins.video' in project.settings.INSTALLED_APPS)
Example #26
0
    def test_patch_16(self):
        config_data = config.parse(['--db=sqlite://localhost/test.db',
                                    '--lang=en',
                                    '--django-version=1.6',
                                    '--cms-version=develop',
                                    '-q', '-u', '-zno', '--i18n=no',
                                    '-p'+self.project_dir, 'example_path_16'])

        install.requirements(config_data.requirements)
        django.create_project(config_data)
        django.patch_settings(config_data)
        django.copy_files(config_data)
        settings = open(config_data.settings_path).read()
        urlconf = open(config_data.urlconf_path).read()

        # settings is importable even in non django environment
        sys.path.append(config_data.project_directory)

        project = __import__(config_data.project_name,
                             globals(), locals(), ['settings'])

        ## checking for django options
        self.assertTrue(project.settings.MEDIA_ROOT, os.path.join(config_data.project_directory, 'media'))
        self.assertEqual(project.settings.MEDIA_URL, '/media/')

        self.assertTrue('cmsplugin_filer_image' not in project.settings.INSTALLED_APPS)
        self.assertTrue('cmsplugin_filer_file' not in project.settings.INSTALLED_APPS)
        self.assertTrue('cmsplugin_filer_folder' not in project.settings.INSTALLED_APPS)
        self.assertTrue('cmsplugin_filer_link' not in project.settings.INSTALLED_APPS)
        self.assertTrue('cmsplugin_filer_teaser' not in project.settings.INSTALLED_APPS)
        self.assertTrue('cmsplugin_filer_utils' not in project.settings.INSTALLED_APPS)
        self.assertTrue('cmsplugin_filer_video' not in project.settings.INSTALLED_APPS)
        self.assertTrue('djangocms_text_ckeditor' in project.settings.INSTALLED_APPS)
        self.assertTrue('djangocms_admin_style' in project.settings.INSTALLED_APPS)
        self.assertTrue('filer' not in project.settings.INSTALLED_APPS)
        self.assertTrue('djangocms_column' in project.settings.INSTALLED_APPS)
        self.assertTrue('djangocms_file' in project.settings.INSTALLED_APPS)
        self.assertTrue('djangocms_flash' in project.settings.INSTALLED_APPS)
        self.assertTrue('djangocms_googlemap' in project.settings.INSTALLED_APPS)
        self.assertTrue('djangocms_inherit' in project.settings.INSTALLED_APPS)
        self.assertTrue('djangocms_link' in project.settings.INSTALLED_APPS)
        self.assertTrue('djangocms_picture' in project.settings.INSTALLED_APPS)
        self.assertTrue('djangocms_style' in project.settings.INSTALLED_APPS)
        self.assertTrue('djangocms_teaser' in project.settings.INSTALLED_APPS)
        self.assertTrue('djangocms_video' in project.settings.INSTALLED_APPS)
Example #27
0
    def test_patch(self):
        config_data = config.parse(['--db=sqlite://localhost/test.db',
                                    '--lang=en',
                                    '--cms-version=develop',
                                    '-f', '-q', '-u', '-zno', '--i18n=no',
                                    '-p'+self.project_dir, 'example_patch'])
        install.requirements(config_data.requirements)
        django.create_project(config_data)
        django.patch_settings(config_data)
        django.copy_files(config_data)
        settings = open(config_data.settings_path).read()
        urlconf = open(config_data.urlconf_path).read()

        # settings is importable even in non django environment
        sys.path.append(config_data.project_directory)

        project = __import__(config_data.project_name,
                             globals(), locals(), ['settings'])

        ## checking for django options
        self.assertFalse(project.settings.USE_L10N)
        self.assertFalse(project.settings.USE_TZ)
        self.assertEqual(project.settings.LANGUAGE_CODE, 'en')
        #
        ## checking for standard CMS settings
        self.assertTrue('sekizai.context_processors.sekizai' in project.settings.TEMPLATE_CONTEXT_PROCESSORS)
        self.assertTrue('cms.middleware.toolbar.ToolbarMiddleware' in project.settings.MIDDLEWARE_CLASSES)
        self.assertTrue(project.settings.CMS_LANGUAGES['default']['redirect_on_fallback'])
        self.assertEqual(project.settings.CMS_LANGUAGES[1][0]['code'], 'en')

        ## checking for filer (optional) settings
        self.assertTrue('filer' in project.settings.INSTALLED_APPS)
        self.assertTrue('easy_thumbnails' in project.settings.INSTALLED_APPS)
        self.assertTrue(hasattr(project.settings, 'THUMBNAIL_PROCESSORS'))

        ## basic urlconf check
        self.assertTrue('cms.urls' in urlconf)
        self.assertTrue('staticfiles_urlpatterns' in urlconf)

        sys.path.remove(config_data.project_directory)
        del project
        del(sys.modules["%s.settings" % config_data.project_name])
Example #28
0
    def test_patch_cms_24_filer(self):
        config_data = config.parse(['--db=sqlite://localhost/test.db',
                                    '--lang=en',
                                    '--django-version=1.5',
                                    '--cms-version=2.4',
                                    '-f', '-q', '-u', '-zno', '--i18n=no',
                                    '-p' + self.project_dir, 'example_path_24_f'])
        reqs = config_data.requirements.replace('django-mptt>=0.5.1,<0.5.3', '')
        install.requirements(config_data.requirements)
        django.create_project(config_data)
        django.patch_settings(config_data)
        django.copy_files(config_data)
        settings = open(config_data.settings_path).read()
        urlconf = open(config_data.urlconf_path).read()

        # settings is importable even in non django environment
        sys.path.append(config_data.project_directory)

        project = __import__(config_data.project_name, globals(), locals(), [str('settings')])

        # checking for django options
        self.assertTrue(project.settings.MEDIA_ROOT,
                        os.path.join(config_data.project_directory, 'media'))
        self.assertEqual(project.settings.MEDIA_URL, '/media/')
        self.assertTrue('djangocms_file' not in project.settings.INSTALLED_APPS)
        self.assertTrue('djangocms_flash' not in project.settings.INSTALLED_APPS)
        self.assertTrue('djangocms_googlemap' not in project.settings.INSTALLED_APPS)
        self.assertTrue('djangocms_inherit' not in project.settings.INSTALLED_APPS)
        self.assertTrue('djangocms_link' in project.settings.INSTALLED_APPS)
        self.assertTrue('djangocms_picture' not in project.settings.INSTALLED_APPS)
        self.assertTrue('djangocms_teaser' not in project.settings.INSTALLED_APPS)
        self.assertTrue('djangocms_video' not in project.settings.INSTALLED_APPS)
        self.assertTrue('cmsplugin_filer_image' in project.settings.INSTALLED_APPS)
        self.assertTrue('cms.plugins.flash' in project.settings.INSTALLED_APPS)
        self.assertTrue('cms.plugins.googlemap' in project.settings.INSTALLED_APPS)
        self.assertTrue('cms.plugins.inherit' in project.settings.INSTALLED_APPS)
        self.assertTrue('cmsplugin_filer_file' in project.settings.INSTALLED_APPS)
        self.assertTrue('cmsplugin_filer_folder' in project.settings.INSTALLED_APPS)
        self.assertTrue('cmsplugin_filer_link' not in project.settings.INSTALLED_APPS)
        self.assertTrue('cmsplugin_filer_teaser' in project.settings.INSTALLED_APPS)
        self.assertTrue('cmsplugin_filer_utils' in project.settings.INSTALLED_APPS)
        self.assertTrue('cmsplugin_filer_video' in project.settings.INSTALLED_APPS)
Example #29
0
    def test_patch_django_18_31(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', '-f',
                                    '--cms-version=stable', '--timezone=Europe/Moscow',
                                    '-q', '-u', '-zno', '--i18n=no',
                                    '-p'+self.project_dir, 'example_path_18_31_settings'])
        install.requirements(config_data.requirements)
        django.create_project(config_data)
        django.patch_settings(config_data)
        django.copy_files(config_data)
        # settings is importable even in non django environment
        sys.path.append(config_data.project_directory)

        project = __import__(config_data.project_name, globals(), locals(), [str('settings')])

        # checking for django options
        self.assertTrue(project.settings.TEMPLATES)
        self.assertFalse(getattr(project.settings, 'TEMPLATES_DIR', False))
Example #30
0
    def test_patch_22_settings(self):
        dj_version, dj_match = get_stable_django()
        cms_stable, cms_match = get_stable_djangocms()

        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,
            "--cms-version=%s" % cms_stable,
            "--django-version=%s" % dj_version,
            "--timezone=Europe/Moscow",
            "-q",
            "-u",
            "-zno",
            "--i18n=no",
            "-p" + self.project_dir,
            "example_path_111_settings",
        ])
        install.requirements(config_data.requirements)
        django.create_project(config_data)
        django.patch_settings(config_data)
        django.copy_files(config_data)
        # settings is importable even in non django environment
        sys.path.append(config_data.project_directory)

        project = __import__(config_data.project_name, globals(), locals(),
                             ["settings"])

        # checking for django options
        self.assertEqual(
            project.settings.MEDIA_ROOT,
            os.path.join(config_data.project_directory, "media"),
        )
        self.assertEqual(project.settings.MEDIA_URL, "/media/")

        # Data from external settings files
        self.assertIsNotNone(getattr(project.settings, "MIDDLEWARE", None))
        self.assertIsNone(getattr(project.settings, "MIDDLEWARE_CLASSES",
                                  None))
Example #31
0
    def test_patch_django_18_32(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',
                                    '--timezone=Europe/Moscow',
                                    '-q', '-u', '-zno', '--i18n=no',
                                    '-p' + self.project_dir, 'example_path_17_settings'])
        install.requirements(config_data.requirements)
        django.create_project(config_data)
        django.patch_settings(config_data)
        django.copy_files(config_data)
        # settings is importable even in non django environment
        sys.path.append(config_data.project_directory)

        project = __import__(config_data.project_name, globals(), locals(), [str('settings')])

        # checking for django options
        self.assertFalse('south' in project.settings.INSTALLED_APPS)
        self.assertFalse('cms' in project.settings.MIGRATION_MODULES)
        self.assertFalse('djangocms_text_ckeditor' in project.settings.MIGRATION_MODULES)
Example #32
0
    def test_patch_31(self):
        config_data = config.parse(['--db=sqlite://localhost/test.db',
                                    '--lang=en', '--cms=develop',
                                    '--django-version=1.6',
                                    '--timezone=Europe/Moscow',
                                    '-f', '-q', '-u', '-zno', '--i18n=no',
                                    '-p'+self.project_dir, 'example_path_patch_31'])
        install.requirements(config_data.requirements)
        django.create_project(config_data)
        django.patch_settings(config_data)
        django.copy_files(config_data)
        settings = open(config_data.settings_path).read()
        urlconf = open(config_data.urlconf_path).read()

        # settings is importable even in non django environment
        sys.path.append(config_data.project_directory)

        project = __import__(config_data.project_name, globals(), locals(), [str('settings')])

        # checking mptt / treebeard
        self.assertFalse('mptt' in project.settings.INSTALLED_APPS)
        self.assertTrue('treebeard' in project.settings.INSTALLED_APPS)
Example #33
0
    def test_patch_django_no_plugins(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', '-f', '--no-plugins',
                                    '--cms-version=stable', '--timezone=Europe/Moscow',
                                    '-q', '-u', '-zno', '--i18n=no',
                                    '-p' + self.project_dir, 'example_path_no_plugin'])
        install.requirements(config_data.requirements)
        django.create_project(config_data)
        django.patch_settings(config_data)
        django.copy_files(config_data)
        # settings is importable even in non django environment
        sys.path.append(config_data.project_directory)

        project = __import__(config_data.project_name, globals(), locals(), [str('settings')])

        # checking for django options
        self.assertTrue(project.settings.TEMPLATES)
        self.assertFalse(getattr(project.settings, 'TEMPLATES_DIR', False))
        self.assertFalse('djangocms_file' in project.settings.INSTALLED_APPS)
        self.assertFalse('djangocms_flash' in project.settings.INSTALLED_APPS)
        self.assertFalse('djangocms_googlemap' in project.settings.INSTALLED_APPS)
        self.assertFalse('djangocms_inherit' in project.settings.INSTALLED_APPS)
        self.assertFalse('djangocms_link' in project.settings.INSTALLED_APPS)
        self.assertFalse('djangocms_picture' in project.settings.INSTALLED_APPS)
        self.assertFalse('djangocms_teaser' in project.settings.INSTALLED_APPS)
        self.assertFalse('djangocms_video' in project.settings.INSTALLED_APPS)
        self.assertFalse('cms.plugins.file' in project.settings.INSTALLED_APPS)
        self.assertFalse('cms.plugins.flash' in project.settings.INSTALLED_APPS)
        self.assertFalse('cms.plugins.googlemap' in project.settings.INSTALLED_APPS)
        self.assertFalse('cms.plugins.inherit' in project.settings.INSTALLED_APPS)
        self.assertFalse('cms.plugins.link' in project.settings.INSTALLED_APPS)
        self.assertFalse('cms.plugins.picture' in project.settings.INSTALLED_APPS)
        self.assertFalse('cms.plugins.teaser' in project.settings.INSTALLED_APPS)
        self.assertFalse('cms.plugins.text' in project.settings.INSTALLED_APPS)
        self.assertFalse('cms.plugins.twitter' in project.settings.INSTALLED_APPS)
        self.assertFalse('cms.plugins.video' in project.settings.INSTALLED_APPS)
Example #34
0
    def test_patch_django_18_31(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', '-f',
            '--cms-version=stable', '--timezone=Europe/Moscow', '-q', '-u',
            '-zno', '--i18n=no', '-p' + self.project_dir,
            'example_path_18_31_settings'
        ])
        install.requirements(config_data.requirements)
        django.create_project(config_data)
        django.patch_settings(config_data)
        django.copy_files(config_data)
        # settings is importable even in non django environment
        sys.path.append(config_data.project_directory)

        project = __import__(config_data.project_name, globals(), locals(),
                             [str('settings')])

        # checking for django options
        self.assertTrue(project.settings.TEMPLATES)
        self.assertFalse(getattr(project.settings, 'TEMPLATES_DIR', False))
Example #35
0
    def test_patch_31(self):
        config_data = config.parse([
            '--db=sqlite://localhost/test.db', '--lang=en', '--cms=3.1',
            '--django-version=1.6', '--timezone=Europe/Moscow', '-f', '-q',
            '-u', '-zno', '--i18n=no', '-p' + self.project_dir,
            'example_path_patch_31'
        ])
        install.requirements(config_data.requirements)
        django.create_project(config_data)
        django.patch_settings(config_data)
        django.copy_files(config_data)
        settings = open(config_data.settings_path).read()
        urlconf = open(config_data.urlconf_path).read()

        # settings is importable even in non django environment
        sys.path.append(config_data.project_directory)

        project = __import__(config_data.project_name, globals(), locals(),
                             [str('settings')])

        # checking mptt / treebeard
        self.assertFalse('mptt' in project.settings.INSTALLED_APPS)
        self.assertTrue('treebeard' in project.settings.INSTALLED_APPS)
Example #36
0
    def test_patch_django_17_31(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.7', '-f',
                                    '--cms-version=develop', '--timezone=Europe/Moscow',
                                    '-q', '-u', '-zno', '--i18n=no',
                                    '-p'+self.project_dir, 'example_path_17_31_settings'])
        install.requirements(config_data.requirements)
        django.create_project(config_data)
        django.patch_settings(config_data)
        django.copy_files(config_data)
        # settings is importable even in non django environment
        sys.path.append(config_data.project_directory)

        project = __import__(config_data.project_name,
                             globals(), locals(), ['settings'])

        ## checking for django options
        self.assertFalse('south' in project.settings.INSTALLED_APPS)
        for module in MIGRATION_MODULES_3_1_FILER:
            self.assertTrue(module[0] in project.settings.MIGRATION_MODULES.keys())
            self.assertTrue(module[1] in project.settings.MIGRATION_MODULES.values())
Example #37
0
    def test_patch(self):
        config_data = config.parse([
            '--db=sqlite://localhost/test.db', '--lang=en',
            '--django-version=1.5', '--cms-version=3.0',
            '--timezone=Europe/Moscow', '-f', '-q', '-u', '-zno', '--i18n=no',
            '-p' + self.project_dir, 'example_path_patch'
        ])
        install.requirements(config_data.requirements)
        django.create_project(config_data)
        django.patch_settings(config_data)
        django.copy_files(config_data)
        settings = open(config_data.settings_path).read()
        urlconf = open(config_data.urlconf_path).read()

        # settings is importable even in non django environment
        sys.path.append(config_data.project_directory)

        project = __import__(config_data.project_name, globals(), locals(),
                             [str('settings')])

        # checking for django options
        self.assertFalse(project.settings.USE_L10N)
        self.assertFalse(project.settings.USE_TZ)
        self.assertEqual(project.settings.TIME_ZONE, 'Europe/Moscow')
        self.assertEqual(project.settings.LANGUAGE_CODE, 'en')
        self.assertTrue(project.settings.MEDIA_ROOT,
                        os.path.join(config_data.project_directory, 'media'))
        self.assertEqual(project.settings.MEDIA_URL, '/media/')
        #
        # checking for standard CMS settings
        self.assertTrue('sekizai.context_processors.sekizai' in
                        project.settings.TEMPLATE_CONTEXT_PROCESSORS)
        self.assertTrue('cms.middleware.toolbar.ToolbarMiddleware' in
                        project.settings.MIDDLEWARE_CLASSES)
        self.assertTrue(
            project.settings.CMS_LANGUAGES['default']['redirect_on_fallback'])
        self.assertEqual(project.settings.CMS_LANGUAGES[1][0]['code'], 'en')

        # checking mptt / treebeard
        self.assertTrue('mptt' in project.settings.INSTALLED_APPS)
        self.assertFalse('treebeard' in project.settings.INSTALLED_APPS)

        # checking for filer (optional) settings
        self.assertTrue('filer' in project.settings.INSTALLED_APPS)
        self.assertTrue('easy_thumbnails' in project.settings.INSTALLED_APPS)
        self.assertTrue(
            'cmsplugin_filer_image' in project.settings.INSTALLED_APPS)
        self.assertTrue(
            'cmsplugin_filer_file' in project.settings.INSTALLED_APPS)
        self.assertTrue(
            'cmsplugin_filer_folder' in project.settings.INSTALLED_APPS)
        self.assertTrue(
            'cmsplugin_filer_link' not in project.settings.INSTALLED_APPS)
        self.assertTrue(
            'cmsplugin_filer_teaser' in project.settings.INSTALLED_APPS)
        self.assertTrue(
            'cmsplugin_filer_utils' in project.settings.INSTALLED_APPS)
        self.assertTrue(
            'cmsplugin_filer_video' in project.settings.INSTALLED_APPS)
        self.assertTrue(
            'djangocms_text_ckeditor' in project.settings.INSTALLED_APPS)
        self.assertTrue(
            'djangocms_admin_style' in project.settings.INSTALLED_APPS)
        self.assertTrue('filer' in project.settings.INSTALLED_APPS)
        self.assertTrue('djangocms_column' in project.settings.INSTALLED_APPS)
        self.assertTrue(
            'djangocms_file' not in project.settings.INSTALLED_APPS)
        self.assertTrue(
            'djangocms_flash' not in project.settings.INSTALLED_APPS)
        self.assertTrue(
            'djangocms_googlemap' in project.settings.INSTALLED_APPS)
        self.assertTrue('djangocms_inherit' in project.settings.INSTALLED_APPS)
        self.assertTrue('djangocms_link' in project.settings.INSTALLED_APPS)
        self.assertTrue(
            'djangocms_picture' not in project.settings.INSTALLED_APPS)
        self.assertTrue('djangocms_style' in project.settings.INSTALLED_APPS)
        self.assertTrue(
            'djangocms_teaser' not in project.settings.INSTALLED_APPS)
        self.assertTrue(
            'djangocms_video' not in project.settings.INSTALLED_APPS)
        self.assertTrue(hasattr(project.settings, 'THUMBNAIL_PROCESSORS'))
        self.assertTrue('cms.context_processors.cms_settings' in
                        project.settings.TEMPLATE_CONTEXT_PROCESSORS)
        self.assertTrue('cms.context_processors.media' not in
                        project.settings.TEMPLATE_CONTEXT_PROCESSORS)

        # basic urlconf check
        self.assertTrue('cms.urls' in urlconf)
        self.assertTrue('staticfiles_urlpatterns' in urlconf)

        sys.path.remove(config_data.project_directory)
        del project
        del (sys.modules["%s.settings" % config_data.project_name])
Example #38
0
    def test_patch_django_22_37(self):
        dj_version, dj_match = get_stable_django()

        config_data = config.parse([
            "--db=sqlite://localhost/test.db",
            "--lang=en",
            "--bootstrap=yes",
            "--django-version=%s" % dj_version,
            "--cms-version=3.7",
            "--timezone=Europe/Moscow",
            "-q",
            "-u",
            "-zno",
            "--i18n=no",
            "-p" + self.project_dir,
            "test_patch_django_111_36",
        ])

        install.requirements(config_data.requirements)
        django.create_project(config_data)
        django.patch_settings(config_data)
        django.copy_files(config_data)
        settings = open(config_data.settings_path).read()
        urlconf = open(config_data.urlconf_path).read()

        # settings is importable even in non django environment
        sys.path.append(config_data.project_directory)

        project = __import__(config_data.project_name, globals(), locals(),
                             ["settings"])

        # checking for django options
        self.assertEqual(
            project.settings.MEDIA_ROOT,
            os.path.join(config_data.project_directory, "media"),
        )
        self.assertEqual(project.settings.MEDIA_URL, "/media/")

        self.assertEqual(project.settings.TIME_ZONE, "Europe/Moscow")
        self.assertTrue(
            "cmsplugin_filer_image" not in project.settings.INSTALLED_APPS)
        self.assertTrue(
            "cmsplugin_filer_file" not in project.settings.INSTALLED_APPS)
        self.assertTrue(
            "cmsplugin_filer_folder" not in project.settings.INSTALLED_APPS)
        self.assertTrue(
            "cmsplugin_filer_link" not in project.settings.INSTALLED_APPS)
        self.assertTrue(
            "cmsplugin_filer_teaser" not in project.settings.INSTALLED_APPS)
        self.assertTrue(
            "cmsplugin_filer_utils" not in project.settings.INSTALLED_APPS)
        self.assertTrue(
            "cmsplugin_filer_video" not in project.settings.INSTALLED_APPS)
        self.assertTrue(
            "djangocms_text_ckeditor" in project.settings.INSTALLED_APPS)
        self.assertTrue(
            "djangocms_admin_style" in project.settings.INSTALLED_APPS)
        self.assertTrue("filer" in project.settings.INSTALLED_APPS)
        self.assertTrue(
            "djangocms_bootstrap4" in project.settings.INSTALLED_APPS)
        self.assertTrue("djangocms_file" in project.settings.INSTALLED_APPS)
        self.assertTrue(
            "djangocms_flash" not in project.settings.INSTALLED_APPS)
        self.assertTrue(
            "djangocms_googlemap" in project.settings.INSTALLED_APPS)
        self.assertTrue(
            "djangocms_inherit" not in project.settings.INSTALLED_APPS)
        self.assertTrue("djangocms_link" in project.settings.INSTALLED_APPS)
        self.assertTrue("djangocms_picture" in project.settings.INSTALLED_APPS)
        self.assertTrue("djangocms_style" in project.settings.INSTALLED_APPS)
        self.assertTrue(
            "djangocms_teaser" not in project.settings.INSTALLED_APPS)
        self.assertTrue("djangocms_video" in project.settings.INSTALLED_APPS)
        self.assertTrue(config.get_settings().APPHOOK_RELOAD_MIDDLEWARE_CLASS
                        in project.settings.MIDDLEWARE)
        self.assertEqual(set(project.settings.CMS_TEMPLATES),
                         self.templates_bootstrap)

        self.assertTrue(project.settings.TEMPLATES)
        self.assertEqual(len(re.findall("BASE_DIR = ", settings)), 1)
        self.assertEqual(len(re.findall("STATIC_ROOT", settings)), 1)
        self.assertEqual(len(re.findall("MEDIA_ROOT =", settings)), 1)
        self.assertEqual(len(re.findall("STATICFILES_DIRS", settings)), 1)
Example #39
0
    def test_patch_django_base_no_plugins(self):
        dj_version, dj_match = get_stable_django()
        cms_stable, cms_match = get_stable_djangocms()

        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=%s" % dj_version,
            "-f",
            "--no-plugins",
            "--cms-version=%s" % cms_stable,
            "--timezone=Europe/Moscow",
            "-q",
            "-u",
            "-zno",
            "--i18n=no",
            "-p" + self.project_dir,
            "test_patch_django_111_no_plugins",
        ])
        install.requirements(config_data.requirements)
        django.create_project(config_data)
        django.patch_settings(config_data)
        django.copy_files(config_data)
        # settings is importable even in non django environment
        sys.path.append(config_data.project_directory)

        project = __import__(config_data.project_name, globals(), locals(),
                             ["settings"])

        # checking for django options
        self.assertTrue(project.settings.TEMPLATES)
        self.assertFalse(getattr(project.settings, "TEMPLATES_DIR", False))
        self.assertFalse("djangocms_file" in project.settings.INSTALLED_APPS)
        self.assertFalse("djangocms_flash" in project.settings.INSTALLED_APPS)
        self.assertFalse(
            "djangocms_googlemap" in project.settings.INSTALLED_APPS)
        self.assertFalse(
            "djangocms_inherit" in project.settings.INSTALLED_APPS)
        self.assertFalse("djangocms_link" in project.settings.INSTALLED_APPS)
        self.assertFalse(
            "djangocms_picture" in project.settings.INSTALLED_APPS)
        self.assertFalse("djangocms_teaser" in project.settings.INSTALLED_APPS)
        self.assertFalse("djangocms_video" in project.settings.INSTALLED_APPS)
        self.assertFalse("cms.plugins.file" in project.settings.INSTALLED_APPS)
        self.assertFalse(
            "cms.plugins.flash" in project.settings.INSTALLED_APPS)
        self.assertFalse(
            "cms.plugins.googlemap" in project.settings.INSTALLED_APPS)
        self.assertFalse(
            "cms.plugins.inherit" in project.settings.INSTALLED_APPS)
        self.assertFalse("cms.plugins.link" in project.settings.INSTALLED_APPS)
        self.assertFalse(
            "cms.plugins.picture" in project.settings.INSTALLED_APPS)
        self.assertFalse(
            "cms.plugins.teaser" in project.settings.INSTALLED_APPS)
        self.assertFalse("cms.plugins.text" in project.settings.INSTALLED_APPS)
        self.assertFalse(
            "cms.plugins.twitter" in project.settings.INSTALLED_APPS)
        self.assertFalse(
            "cms.plugins.video" in project.settings.INSTALLED_APPS)
Example #40
0
    def test_copy_data(self):
        """
        Test correct file copying with different switches
        """

        # Basic template
        config_data = config.parse([
            '--db=postgres://user:pwd@host/dbname', '--cms-version=stable',
            '-q', '-p' + self.project_dir, 'example_prj'
        ])
        os.makedirs(config_data.project_path)
        django.copy_files(config_data)
        starting_page_py = os.path.join(config_data.project_directory,
                                        'starting_page.py')
        starting_page_json = os.path.join(config_data.project_directory,
                                          'starting_page.json')
        basic_template = os.path.join(config_data.project_path, 'templates',
                                      'fullwidth.html')
        boostrap_template = os.path.join(config_data.project_path, 'templates',
                                         'feature.html')
        self.assertFalse(os.path.exists(starting_page_py))
        self.assertFalse(os.path.exists(starting_page_json))
        self.assertFalse(os.path.exists(boostrap_template))
        self.assertTrue(os.path.exists(basic_template))

        # Bootstrap template
        self._create_project_dir()
        config_data = config.parse([
            '--db=postgres://user:pwd@host/dbname', '--cms-version=stable',
            '--bootstrap=yes', '-q', '-p' + self.project_dir, 'example_prj'
        ])
        os.makedirs(config_data.project_path)
        django.copy_files(config_data)
        starting_page_py = os.path.join(config_data.project_directory,
                                        'starting_page.py')
        starting_page_json = os.path.join(config_data.project_directory,
                                          'starting_page.json')
        basic_template = os.path.join(config_data.project_path, 'templates',
                                      'fullwidth.html')
        boostrap_template = os.path.join(config_data.project_path, 'templates',
                                         'feature.html')
        self.assertFalse(os.path.exists(starting_page_py))
        self.assertFalse(os.path.exists(starting_page_json))
        self.assertTrue(os.path.exists(boostrap_template))
        self.assertFalse(os.path.exists(basic_template))

        # Custom template
        self._create_project_dir()
        tpl_path = os.path.join(os.path.dirname(__file__), 'test_templates')
        config_data = config.parse([
            '--db=postgres://user:pwd@host/dbname', '--cms-version=stable',
            '--templates=%s' % tpl_path, '-q', '-p' + self.project_dir,
            'example_prj'
        ])
        os.makedirs(config_data.project_path)
        django.copy_files(config_data)
        basic_template = os.path.join(config_data.project_path, 'templates',
                                      'fullwidth.html')
        boostrap_template = os.path.join(config_data.project_path, 'templates',
                                         'feature.html')
        custom_template = os.path.join(config_data.project_path, 'templates',
                                       'left.html')
        self.assertTrue(os.path.exists(custom_template))
        self.assertFalse(os.path.exists(boostrap_template))
        self.assertFalse(os.path.exists(basic_template))

        # Starting page
        self._create_project_dir()
        config_data = config.parse([
            '--db=postgres://user:pwd@host/dbname', '--cms-version=stable',
            '--starting-page=yes', '-q', '-p' + self.project_dir, 'example_prj'
        ])
        os.makedirs(config_data.project_path)
        django.copy_files(config_data)
        starting_page_py = os.path.join(config_data.project_directory,
                                        'starting_page.py')
        starting_page_json = os.path.join(config_data.project_directory,
                                          'starting_page.json')
        self.assertTrue(os.path.exists(starting_page_py))
        self.assertTrue(os.path.exists(starting_page_json))
Example #41
0
    def test_patch(self):
        dj_version, dj_match = get_stable_django()
        cms_stable, cms_match = get_stable_djangocms()

        config_data = config.parse([
            "--db=sqlite://localhost/test.db",
            "--lang=en",
            "--cms-version=%s" % cms_stable,
            "--django-version=%s" % dj_version,
            "--timezone=Europe/Moscow",
            "-f",
            "-q",
            "-u",
            "-zno",
            "--i18n=no",
            "-p" + self.project_dir,
            "example_path_patch",
        ])
        install.requirements(config_data.requirements)
        django.create_project(config_data)
        django.patch_settings(config_data)
        django.copy_files(config_data)
        settings = open(config_data.settings_path).read()
        urlconf = open(config_data.urlconf_path).read()

        # settings is importable even in non django environment
        sys.path.append(config_data.project_directory)

        project = __import__(config_data.project_name, globals(), locals(),
                             ["settings"])

        # checking for django options
        self.assertFalse(project.settings.USE_L10N)
        self.assertFalse(project.settings.USE_TZ)
        self.assertEqual(project.settings.TIME_ZONE, "Europe/Moscow")
        self.assertEqual(project.settings.LANGUAGE_CODE, "en")
        self.assertTrue(
            project.settings.MEDIA_ROOT,
            os.path.join(config_data.project_directory, "media"),
        )
        self.assertEqual(project.settings.MEDIA_URL, "/media/")
        #
        # checking for standard CMS settings
        self.assertTrue("sekizai.context_processors.sekizai" in project.
                        settings.TEMPLATES[0]["OPTIONS"]["context_processors"])
        self.assertTrue("cms.middleware.toolbar.ToolbarMiddleware" in
                        project.settings.MIDDLEWARE)
        self.assertTrue(
            project.settings.CMS_LANGUAGES["default"]["redirect_on_fallback"])
        self.assertEqual(project.settings.CMS_LANGUAGES[1][0]["code"], "en")

        # checking mptt / treebeard
        self.assertFalse("mptt" in project.settings.INSTALLED_APPS)
        self.assertTrue("treebeard" in project.settings.INSTALLED_APPS)

        # checking for filer (optional) settings
        self.assertTrue("filer" in project.settings.INSTALLED_APPS)
        self.assertTrue("easy_thumbnails" in project.settings.INSTALLED_APPS)
        self.assertTrue(
            "cmsplugin_filer_image" not in project.settings.INSTALLED_APPS)
        self.assertTrue(
            "cmsplugin_filer_file" not in project.settings.INSTALLED_APPS)
        self.assertTrue(
            "cmsplugin_filer_folder" not in project.settings.INSTALLED_APPS)
        self.assertTrue(
            "cmsplugin_filer_link" not in project.settings.INSTALLED_APPS)
        self.assertTrue(
            "cmsplugin_filer_teaser" not in project.settings.INSTALLED_APPS)
        self.assertTrue(
            "cmsplugin_filer_utils" not in project.settings.INSTALLED_APPS)
        self.assertTrue(
            "cmsplugin_filer_video" not in project.settings.INSTALLED_APPS)
        self.assertTrue(
            "djangocms_text_ckeditor" in project.settings.INSTALLED_APPS)
        self.assertTrue(
            "djangocms_admin_style" in project.settings.INSTALLED_APPS)
        self.assertTrue("filer" in project.settings.INSTALLED_APPS)
        self.assertTrue("djangocms_file" in project.settings.INSTALLED_APPS)
        self.assertTrue(
            "djangocms_flash" not in project.settings.INSTALLED_APPS)
        self.assertTrue(
            "djangocms_googlemap" in project.settings.INSTALLED_APPS)
        self.assertTrue(
            "djangocms_inherit" not in project.settings.INSTALLED_APPS)
        self.assertTrue("djangocms_link" in project.settings.INSTALLED_APPS)
        self.assertTrue("djangocms_picture" in project.settings.INSTALLED_APPS)
        self.assertTrue("djangocms_style" in project.settings.INSTALLED_APPS)
        self.assertTrue(
            "djangocms_teaser" not in project.settings.INSTALLED_APPS)
        self.assertTrue("djangocms_video" in project.settings.INSTALLED_APPS)
        self.assertTrue(
            "djangocms_bootstrap4" in project.settings.INSTALLED_APPS)
        self.assertTrue(hasattr(project.settings, "THUMBNAIL_PROCESSORS"))
        self.assertTrue("cms.context_processors.cms_settings" in project.
                        settings.TEMPLATES[0]["OPTIONS"]["context_processors"])
        self.assertTrue("cms.context_processors.media" not in project.settings.
                        TEMPLATES[0]["OPTIONS"]["context_processors"])

        # basic urlconf check
        self.assertTrue("cms.urls" in urlconf)
        self.assertTrue("static(settings.MEDIA_URL" in urlconf)
        self.assertTrue("static(settings.STATIC_URL" in urlconf)

        sys.path.remove(config_data.project_directory)
        del project
        del sys.modules["%s.settings" % config_data.project_name]
Example #42
0
    def test_copy_data(self):
        """
        Test correct file copying with different switches
        """
        dj_version, dj_match = get_stable_django()
        cms_stable, cms_match = get_stable_djangocms()

        # Basic template
        config_data = config.parse([
            "--db=postgres://user:pwd@host/dbname",
            "--cms-version=%s" % cms_stable,
            "--django=%s" % dj_version,
            "-q",
            "-p" + self.project_dir,
            "test_copy_data_1",
        ])
        os.makedirs(config_data.project_path)
        django.copy_files(config_data)
        starting_page_py = os.path.join(config_data.project_directory,
                                        "starting_page.py")
        starting_page_json = os.path.join(config_data.project_directory,
                                          "starting_page.json")
        basic_template = os.path.join(config_data.project_path, "templates",
                                      "fullwidth.html")
        boostrap_template = os.path.join(config_data.project_path, "templates",
                                         "feature.html")
        self.assertFalse(os.path.exists(starting_page_py))
        self.assertFalse(os.path.exists(starting_page_json))
        self.assertFalse(os.path.exists(boostrap_template))
        self.assertTrue(os.path.exists(basic_template))

        # Bootstrap template
        self._create_project_dir()
        config_data = config.parse([
            "--db=postgres://user:pwd@host/dbname",
            "--django=%s" % dj_version,
            "--cms-version=%s" % cms_stable,
            "--bootstrap=yes",
            "-q",
            "-p" + self.project_dir,
            "test_copy_data_2",
        ])
        os.makedirs(config_data.project_path)
        django.copy_files(config_data)
        starting_page_py = os.path.join(config_data.project_directory,
                                        "starting_page.py")
        starting_page_json = os.path.join(config_data.project_directory,
                                          "starting_page.json")
        basic_template = os.path.join(config_data.project_path, "templates",
                                      "fullwidth.html")
        boostrap_template = os.path.join(config_data.project_path, "templates",
                                         "feature.html")
        self.assertFalse(os.path.exists(starting_page_py))
        self.assertFalse(os.path.exists(starting_page_json))
        self.assertTrue(os.path.exists(boostrap_template))
        self.assertFalse(os.path.exists(basic_template))

        # Custom template
        self._create_project_dir()
        tpl_path = os.path.join(os.path.dirname(__file__), "test_templates")
        config_data = config.parse([
            "--db=postgres://user:pwd@host/dbname",
            "--django=%s" % dj_version,
            "--cms-version=%s" % cms_stable,
            "--templates=%s" % tpl_path,
            "-q",
            "-p" + self.project_dir,
            "example_prj",
        ])
        os.makedirs(config_data.project_path)
        django.copy_files(config_data)
        basic_template = os.path.join(config_data.project_path, "templates",
                                      "fullwidth.html")
        boostrap_template = os.path.join(config_data.project_path, "templates",
                                         "feature.html")
        custom_template = os.path.join(config_data.project_path, "templates",
                                       "left.html")
        self.assertTrue(os.path.exists(custom_template))
        self.assertFalse(os.path.exists(boostrap_template))
        self.assertFalse(os.path.exists(basic_template))

        # Starting page
        self._create_project_dir()
        config_data = config.parse([
            "--db=postgres://user:pwd@host/dbname",
            "--django=%s" % dj_version,
            "--cms-version=%s" % cms_stable,
            "--starting-page=yes",
            "-q",
            "-p" + self.project_dir,
            "example_prj",
        ])
        os.makedirs(config_data.project_path)
        django.copy_files(config_data)
        starting_page_py = os.path.join(config_data.project_directory,
                                        "starting_page.py")
        starting_page_json = os.path.join(config_data.project_directory,
                                          "starting_page.json")
        self.assertTrue(os.path.exists(starting_page_py))
        self.assertTrue(os.path.exists(starting_page_json))
Example #43
0
    def test_patch_16(self):
        config_data = config.parse([
            '--db=sqlite://localhost/test.db', '--lang=en', '--bootstrap=yes',
            '--django-version=1.6', '--cms-version=3.0',
            '--timezone=Europe/Moscow', '-q', '-u', '-zno', '--i18n=no',
            '-p' + self.project_dir, 'example_path_16'
        ])

        install.requirements(config_data.requirements)
        django.create_project(config_data)
        django.patch_settings(config_data)
        django.copy_files(config_data)
        settings = open(config_data.settings_path).read()
        urlconf = open(config_data.urlconf_path).read()

        # settings is importable even in non django environment
        sys.path.append(config_data.project_directory)

        project = __import__(config_data.project_name, globals(), locals(),
                             ['settings'])

        ## checking for django options
        self.assertTrue(project.settings.MEDIA_ROOT,
                        os.path.join(config_data.project_directory, 'media'))
        self.assertEqual(project.settings.MEDIA_URL, '/media/')

        self.assertEqual(project.settings.TIME_ZONE, 'Europe/Moscow')
        self.assertTrue(
            'cmsplugin_filer_image' not in project.settings.INSTALLED_APPS)
        self.assertTrue(
            'cmsplugin_filer_file' not in project.settings.INSTALLED_APPS)
        self.assertTrue(
            'cmsplugin_filer_folder' not in project.settings.INSTALLED_APPS)
        self.assertTrue(
            'cmsplugin_filer_link' not in project.settings.INSTALLED_APPS)
        self.assertTrue(
            'cmsplugin_filer_teaser' not in project.settings.INSTALLED_APPS)
        self.assertTrue(
            'cmsplugin_filer_utils' not in project.settings.INSTALLED_APPS)
        self.assertTrue(
            'cmsplugin_filer_video' not in project.settings.INSTALLED_APPS)
        self.assertTrue(
            'djangocms_text_ckeditor' in project.settings.INSTALLED_APPS)
        self.assertTrue(
            'djangocms_admin_style' in project.settings.INSTALLED_APPS)
        self.assertTrue('filer' not in project.settings.INSTALLED_APPS)
        self.assertTrue('djangocms_column' in project.settings.INSTALLED_APPS)
        self.assertTrue('djangocms_file' in project.settings.INSTALLED_APPS)
        self.assertTrue('djangocms_flash' in project.settings.INSTALLED_APPS)
        self.assertTrue(
            'djangocms_googlemap' in project.settings.INSTALLED_APPS)
        self.assertTrue('djangocms_inherit' in project.settings.INSTALLED_APPS)
        self.assertTrue('djangocms_link' in project.settings.INSTALLED_APPS)
        self.assertTrue('djangocms_picture' in project.settings.INSTALLED_APPS)
        self.assertTrue('djangocms_style' in project.settings.INSTALLED_APPS)
        self.assertTrue('djangocms_teaser' in project.settings.INSTALLED_APPS)
        self.assertTrue('djangocms_video' in project.settings.INSTALLED_APPS)
        self.assertTrue('cms.context_processors.cms_settings' in
                        project.settings.TEMPLATE_CONTEXT_PROCESSORS)
        self.assertTrue('cms.context_processors.media' not in
                        project.settings.TEMPLATE_CONTEXT_PROCESSORS)

        self.assertEqual(set(project.settings.CMS_TEMPLATES),
                         self.templates_bootstrap)

        self.assertEqual(len(re.findall('BASE_DIR = ', settings)), 1)
        self.assertEqual(len(re.findall('STATIC_ROOT', settings)), 1)
        self.assertEqual(len(re.findall('MEDIA_ROOT =', settings)), 1)
        self.assertEqual(len(re.findall('STATICFILES_DIRS', settings)), 2)
Example #44
0
    def test_copy_data(self):
        """
        Test correct file copying with different switches
        """

        # Basic template
        config_data = config.parse(['--db=postgres://user:pwd@host/dbname',
                                    '--cms-version=stable',
                                    '-q', '-p' + self.project_dir, 'example_prj'])
        os.makedirs(config_data.project_path)
        django.copy_files(config_data)
        starting_page_py = os.path.join(config_data.project_directory, 'starting_page.py')
        starting_page_json = os.path.join(config_data.project_directory, 'starting_page.json')
        basic_template = os.path.join(config_data.project_path, 'templates', 'fullwidth.html')
        boostrap_template = os.path.join(config_data.project_path, 'templates', 'feature.html')
        self.assertFalse(os.path.exists(starting_page_py))
        self.assertFalse(os.path.exists(starting_page_json))
        self.assertFalse(os.path.exists(boostrap_template))
        self.assertTrue(os.path.exists(basic_template))

        # Bootstrap template
        self._create_project_dir()
        config_data = config.parse(['--db=postgres://user:pwd@host/dbname',
                                    '--cms-version=stable', '--bootstrap=yes',
                                    '-q', '-p' + self.project_dir, 'example_prj'])
        os.makedirs(config_data.project_path)
        django.copy_files(config_data)
        starting_page_py = os.path.join(config_data.project_directory, 'starting_page.py')
        starting_page_json = os.path.join(config_data.project_directory, 'starting_page.json')
        basic_template = os.path.join(config_data.project_path, 'templates', 'fullwidth.html')
        boostrap_template = os.path.join(config_data.project_path, 'templates', 'feature.html')
        self.assertFalse(os.path.exists(starting_page_py))
        self.assertFalse(os.path.exists(starting_page_json))
        self.assertTrue(os.path.exists(boostrap_template))
        self.assertFalse(os.path.exists(basic_template))

        # Custom template
        self._create_project_dir()
        tpl_path = os.path.join(os.path.dirname(__file__), 'test_templates')
        config_data = config.parse(['--db=postgres://user:pwd@host/dbname',
                                    '--cms-version=stable', '--templates=%s' % tpl_path,
                                    '-q', '-p' + self.project_dir, 'example_prj'])
        os.makedirs(config_data.project_path)
        django.copy_files(config_data)
        basic_template = os.path.join(config_data.project_path, 'templates', 'fullwidth.html')
        boostrap_template = os.path.join(config_data.project_path, 'templates', 'feature.html')
        custom_template = os.path.join(config_data.project_path, 'templates', 'left.html')
        self.assertTrue(os.path.exists(custom_template))
        self.assertFalse(os.path.exists(boostrap_template))
        self.assertFalse(os.path.exists(basic_template))

        # Starting page
        self._create_project_dir()
        config_data = config.parse(['--db=postgres://user:pwd@host/dbname',
                                    '--cms-version=stable', '--starting-page=yes',
                                    '-q', '-p' + self.project_dir, 'example_prj'])
        os.makedirs(config_data.project_path)
        django.copy_files(config_data)
        starting_page_py = os.path.join(config_data.project_directory, 'starting_page.py')
        starting_page_json = os.path.join(config_data.project_directory, 'starting_page.json')
        self.assertTrue(os.path.exists(starting_page_py))
        self.assertTrue(os.path.exists(starting_page_json))
Example #45
0
    def test_patch(self):
        config_data = config.parse(['--db=sqlite://localhost/test.db',
                                    '--lang=en',
                                    '--django-version=1.8',
                                    '--cms-version=3.2', '--timezone=Europe/Moscow',
                                    '-f', '-q', '-u', '-zno', '--i18n=no',
                                    '-p' + self.project_dir, 'example_path_patch'])
        install.requirements(config_data.requirements)
        django.create_project(config_data)
        django.patch_settings(config_data)
        django.copy_files(config_data)
        settings = open(config_data.settings_path).read()
        urlconf = open(config_data.urlconf_path).read()

        # settings is importable even in non django environment
        sys.path.append(config_data.project_directory)

        project = __import__(config_data.project_name, globals(), locals(), [str('settings')])

        # checking for django options
        self.assertFalse(project.settings.USE_L10N)
        self.assertFalse(project.settings.USE_TZ)
        self.assertEqual(project.settings.TIME_ZONE, 'Europe/Moscow')
        self.assertEqual(project.settings.LANGUAGE_CODE, 'en')
        self.assertTrue(project.settings.MEDIA_ROOT,
                        os.path.join(config_data.project_directory, 'media'))
        self.assertEqual(project.settings.MEDIA_URL, '/media/')
        #
        # checking for standard CMS settings
        self.assertTrue(
            'sekizai.context_processors.sekizai' in
            project.settings.TEMPLATES[0]['OPTIONS']['context_processors']
        )
        self.assertTrue(
            'cms.middleware.toolbar.ToolbarMiddleware' in project.settings.MIDDLEWARE_CLASSES
        )
        self.assertTrue(project.settings.CMS_LANGUAGES['default']['redirect_on_fallback'])
        self.assertEqual(project.settings.CMS_LANGUAGES[1][0]['code'], 'en')

        # checking mptt / treebeard
        self.assertFalse('mptt' in project.settings.INSTALLED_APPS)
        self.assertTrue('treebeard' in project.settings.INSTALLED_APPS)

        # checking for filer (optional) settings
        self.assertTrue('filer' in project.settings.INSTALLED_APPS)
        self.assertTrue('easy_thumbnails' in project.settings.INSTALLED_APPS)
        self.assertTrue('cmsplugin_filer_image' in project.settings.INSTALLED_APPS)
        self.assertTrue('cmsplugin_filer_file' in project.settings.INSTALLED_APPS)
        self.assertTrue('cmsplugin_filer_folder' in project.settings.INSTALLED_APPS)
        self.assertTrue('cmsplugin_filer_link' not in project.settings.INSTALLED_APPS)
        self.assertTrue('cmsplugin_filer_teaser' not in project.settings.INSTALLED_APPS)
        self.assertTrue('cmsplugin_filer_utils' in project.settings.INSTALLED_APPS)
        self.assertTrue('cmsplugin_filer_video' not in project.settings.INSTALLED_APPS)
        self.assertTrue('djangocms_text_ckeditor' in project.settings.INSTALLED_APPS)
        self.assertTrue('djangocms_admin_style' in project.settings.INSTALLED_APPS)
        self.assertTrue('filer' in project.settings.INSTALLED_APPS)
        self.assertTrue('djangocms_file' not in project.settings.INSTALLED_APPS)
        self.assertTrue('djangocms_flash' not in project.settings.INSTALLED_APPS)
        self.assertTrue('djangocms_googlemap' in project.settings.INSTALLED_APPS)
        self.assertTrue('djangocms_inherit' not in project.settings.INSTALLED_APPS)
        self.assertTrue('djangocms_link' in project.settings.INSTALLED_APPS)
        self.assertTrue('djangocms_picture' not in project.settings.INSTALLED_APPS)
        self.assertTrue('djangocms_style' in project.settings.INSTALLED_APPS)
        self.assertTrue('djangocms_teaser' not in project.settings.INSTALLED_APPS)
        self.assertTrue('djangocms_video' in project.settings.INSTALLED_APPS)
        self.assertTrue('djangocms_column' in project.settings.INSTALLED_APPS)
        self.assertTrue(hasattr(project.settings, 'THUMBNAIL_PROCESSORS'))
        self.assertTrue(
            'cms.context_processors.cms_settings' in
            project.settings.TEMPLATES[0]['OPTIONS']['context_processors']
        )
        self.assertTrue(
            'cms.context_processors.media' not in
            project.settings.TEMPLATES[0]['OPTIONS']['context_processors']
        )

        # basic urlconf check
        self.assertTrue('cms.urls' in urlconf)
        self.assertTrue('staticfiles_urlpatterns' in urlconf)

        sys.path.remove(config_data.project_directory)
        del project
        del (sys.modules["%s.settings" % config_data.project_name])