#!/usr/bin/env python # -*- coding: utf-8 -*- from __future__ import unicode_literals import os import sys def noop_gettext(s): return s permission = True cms_toolbar_edit_on = 'edit' port = 8000 for arg in sys.argv: if arg == '--CMS_PERMISSION=False': permission = False if arg == '--CMS_TOOLBAR_URL__EDIT_ON=test-edit': cms_toolbar_edit_on = 'test-edit' if arg.startswith('--port='): port = arg.split('=')[1] gettext = noop_gettext class DisableMigrations(object): def __contains__(self, item): return True def __getitem__(self, item): return 'notmigrations' def update(self, whatever): return True HELPER_SETTINGS = dict( ALLOWED_HOSTS=[u'0.0.0.0', u'localhost'], CMS_PERMISSION=permission, LANGUAGES=( ('en', u'English'), ('de', u'Deutsch'), ('it', u'Italiano'), ('zh-cn', u'Chinese (Simplified)'), ), LANGUAGE_CODE='en', PARLER_LANGUAGES={ 1: ( {'code': 'en', 'fallbacks': ['de',]}, {'code': 'de', 'fallbacks': ['en',]}, {'code': 'it', 'fallbacks': ['en',]}, {'code': 'zh-cn', 'fallbacks': ['en',]}, ), 'default': { 'fallback': 'en', 'hide_untranslated': False, }, }, PARLER_ENABLE_CACHING=False, CMS_CACHE_DURATIONS={ 'menus': 0, 'content': 0, 'permissions': 0, }, CMS_PAGE_CACHE=False, CMS_TOOLBAR_URL__EDIT_ON=cms_toolbar_edit_on, # required for integration tests LOGIN_URL='/admin/login/?user-login=test', CMS_LANGUAGES={ 1: [ { 'code': 'en', 'name': gettext('English'), 'fallbacks': ['de',], }, { 'code': 'de', 'name': gettext('German'), 'fallbacks': ['en',], }, { 'code': 'it', 'name': gettext('Italian'), 'fallbacks': ['en',], }, { 'code': 'zh-cn', 'name': gettext('Chinese Simplified'), 'fallbacks': ['en',] }, ], 'default': { 'fallbacks': ['en', 'de',], 'redirect_on_fallback': False, 'public': True, 'hide_untranslated': False, } }, CMS_PLACEHOLDER_CONF={ 'placeholder_content_2': { 'plugin_modules': { 'Bootstrap3ButtonCMSPlugin': 'Different Grouper' }, 'plugin_labels': { 'Bootstrap3ButtonCMSPlugin': gettext('Add a link') }, } }, INSTALLED_APPS=[ 'djangocms_text_ckeditor', 'cms.test_utils.project.pluginapp.plugins.link', 'cms.test_utils.project.pluginapp.plugins.multicolumn', 'cms.test_utils.project.pluginapp.plugins.multiwrap', 'cms.test_utils.project.pluginapp.plugins.style', 'cms.test_utils.project.placeholderapp', ], MIDDLEWARE=[ 'cms.middleware.utils.ApphookReloadMiddleware', 'django.middleware.http.ConditionalGetMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.middleware.locale.LocaleMiddleware', 'django.middleware.common.CommonMiddleware', 'cms.middleware.language.LanguageCookieMiddleware', 'cms.middleware.user.CurrentUserMiddleware', 'cms.middleware.page.CurrentPageMiddleware', 'cms.middleware.toolbar.ToolbarMiddleware', ], TEMPLATE_DIRS=( os.path.join( os.path.dirname(__file__), 'cms', 'test_utils', 'project', 'templates', 'integration'), ), CMS_TEMPLATES=( ('fullwidth.html', 'Fullwidth'), ('page.html', 'Standard page'), ('simple.html', 'Simple page'), ), MIGRATION_MODULES={ 'auth': None, 'admin': None, 'contenttypes': None, 'sessions': None, 'sites': None, 'cms': None, 'menus': None, 'djangocms_text_ckeditor': None, }, ) def _helper_patch(*args, **kwargs): from django.core.management import call_command from djangocms_helper import utils call_command('migrate', run_syncdb=True) utils.create_user('normal', 'normal@normal.normal', 'normal', is_staff=True, base_cms_permissions=True, permissions=['view_page']) def run(): from djangocms_helper import runner from djangocms_helper import utils os.environ.setdefault('DATABASE_URL', 'sqlite://localhost/testdb.sqlite') # Patch djangocms_helper to create tables utils._create_db = _helper_patch # we use '.runner()', not '.cms()' nor '.run()' because it does not # add 'test' argument implicitly runner.runner([sys.argv[0], 'cms', '--cms', 'server', '--bind', '0.0.0.0', '--port', str(port)]) if __name__ == "__main__": run()