def prepare_celery(): """Runs the djcelery loader which is required to set the correct backend/scheduler Then adds some signal callbacks to ensure all tasks are registered correctly. """ djcelery.setup_loader() beat_init.connect(beat_update_schedule) worker_init.connect(celeryd_discover_tasks)
def postprocess_settings(globals): import re RE = re.compile(r"%\([A-Z_]+\)s") for k, v in list(globals.items()): if isinstance(v, basestring) and RE.search(v): globals[k] = v % globals try: import djcelery djcelery.setup_loader() except ImportError: pass CELERY_QUEUE_PREFIX = globals['CELERY_QUEUE_PREFIX'] LANGUAGE_CODE = globals['LANGUAGE_CODE'] CELERY_DEFAULT_QUEUE = CELERY_QUEUE_PREFIX + LANGUAGE_CODE + ".default" CELERY_QUEUES = { CELERY_DEFAULT_QUEUE: { "binding_key": CELERY_DEFAULT_QUEUE, }, CELERY_QUEUE_PREFIX + LANGUAGE_CODE + ".notice": { "binding_key": CELERY_QUEUE_PREFIX + LANGUAGE_CODE + ".notice.#", }, CELERY_QUEUE_PREFIX + LANGUAGE_CODE + ".massemail": { "binding_key": CELERY_QUEUE_PREFIX + LANGUAGE_CODE + ".massemail.#", }, CELERY_QUEUE_PREFIX + LANGUAGE_CODE + ".recommendations": { "binding_key": CELERY_QUEUE_PREFIX + LANGUAGE_CODE + ".recommendations.#", }, } CELERY_MASSMAIL_TASK_CONFIG = { 'routing_key' : CELERY_QUEUE_PREFIX + LANGUAGE_CODE + ".massemail.email", } globals['CELERY_QUEUES'] = CELERY_QUEUES globals['CELERY_DEFAULT_QUEUE'] = CELERY_DEFAULT_QUEUE globals['CELERY_MASSMAIL_TASK_CONFIG'] = CELERY_MASSMAIL_TASK_CONFIG globals['COUNTRY_CODE'] = globals['COUNTRY_CODE'].upper() # TODO - remove key_func along with cache KEY_PREFIX option # (it is redundand as cache.Key add site prefix too) from django.utils.encoding import smart_str def key_func(key, prefix, version): if key.startswith('common_'): prefix = 'common' return ':'.join((prefix, str(version), smart_str(key))) globals['CACHES']['default']['KEY_FUNCTION'] = key_func
def pytest_configure(config): if not settings.configured: settings.configure( DATABASE_ENGINE='sqlite3', DATABASES={ 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'TEST_NAME': 'opbeat_tests.db', 'NAME': 'opbeat_tests.db', }, }, # HACK: this fixes our threaded runserver remote tests DATABASE_NAME='opbeat_tests.db', TEST_DATABASE_NAME='opbeat_tests.db', INSTALLED_APPS=[ 'django.contrib.auth', 'django.contrib.admin', 'django.contrib.sessions', 'django.contrib.sites', 'django.contrib.redirects', 'django.contrib.contenttypes', 'djcelery', # celery client 'opbeat.contrib.django', 'tests.contrib.django.testapp', ], ROOT_URLCONF='tests.contrib.django.testapp.urls', DEBUG=False, SITE_ID=1, BROKER_HOST="localhost", BROKER_PORT=5672, BROKER_USER="******", BROKER_PASSWORD="******", BROKER_VHOST="/", CELERY_ALWAYS_EAGER=True, TEMPLATE_DEBUG=True, TEMPLATE_DIRS=[BASE_TEMPLATE_DIR], ALLOWED_HOSTS=['*'], MIDDLEWARE_CLASSES=[ 'django.contrib.sessions.middleware.SessionMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', ], ) import django if hasattr(django, 'setup'): django.setup() import djcelery djcelery.setup_loader()
def __init__(self): super(MyCommonSettings, self).__init__() self.add_apps(installed_apps) self.add_middlewares(( 'django.middleware.common.CommonMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.locale.LocaleMiddleware', 'django.middleware.transaction.TransactionMiddleware', )) import djcelery djcelery.setup_loader()
def setup_environ(): """Sets up the Django environment 1. sets up path and vendor/ stuff 2. validates settings 3. sets up django-celery """ global _has_setup_environ if _has_setup_environ: return # Adjust the python path and put local packages in front. prev_sys_path = list(sys.path) # Make root application importable without the need for # python setup.py install|develop sys.path.append(ROOT) # FIXME: This is vendor/-specific. When we ditch vendor/ we can # ditch this. # Check for ~/.virtualenvs/fjordvagrant/. If that doesn't exist, then # launch all the vendor/ stuff. possible_venv = os.path.expanduser('~/.virtualenvs/fjordvagrant/') if not os.path.exists(possible_venv): os.environ['USING_VENDOR'] = '1' site.addsitedir(path('vendor')) # Move the new items to the front of sys.path. (via virtualenv) new_sys_path = [] for item in list(sys.path): if item not in prev_sys_path: new_sys_path.append(item) sys.path.remove(item) sys.path[:0] = new_sys_path from django.conf import settings validate_settings(settings) import djcelery djcelery.setup_loader() _has_setup_environ = True
def init_ureport_env(): ureportProject = os.environ['UREPORT_HOME'] + "/ureport_project" print "\nInitialising environment for functional tests...\n" print "ureport is in [" + ureportProject + "]" print "Using settings [ci_settings]\n" sys.path.insert(0,ureportProject) import ci_settings setup_environ(ci_settings) import djcelery djcelery.setup_loader() print "\nuReport environment initialised.\n"
def pytest_configure(config): where_am_i = os.path.dirname(os.path.abspath(__file__)) if not settings.configured: settings.configure( DATABASE_ENGINE='sqlite3', DATABASES={ 'default': { 'NAME': ':memory:', 'ENGINE': 'django.db.backends.sqlite3', 'TEST_NAME': ':memory:', }, }, DATABASE_NAME=':memory:', TEST_DATABASE_NAME=':memory:', INSTALLED_APPS=[ 'django.contrib.auth', 'django.contrib.admin', 'django.contrib.sessions', 'django.contrib.sites', # Included to fix Disqus' test Django which solves IntegrityMessage case 'django.contrib.contenttypes', 'djcelery', # celery client 'raven.contrib.django', ], ROOT_URLCONF='', DEBUG=False, SITE_ID=1, BROKER_HOST="localhost", BROKER_PORT=5672, BROKER_USER="******", BROKER_PASSWORD="******", BROKER_VHOST="/", SENTRY_ALLOW_ORIGIN='*', CELERY_ALWAYS_EAGER=True, TEMPLATE_DEBUG=True, TEMPLATE_DIRS=[os.path.join(where_am_i, 'tests', 'contrib', 'django', 'templates')], ) import djcelery djcelery.setup_loader()
def pytest_configure(config): where_am_i = os.path.dirname(os.path.abspath(__file__)) if not settings.configured: settings.configure( DATABASE_ENGINE="sqlite3", DATABASES={ "default": {"NAME": ":memory:", "ENGINE": "django.db.backends.sqlite3", "TEST_NAME": ":memory:"} }, DATABASE_NAME=":memory:", TEST_DATABASE_NAME=":memory:", INSTALLED_APPS=[ "django.contrib.auth", "django.contrib.admin", "django.contrib.sessions", "django.contrib.sites", # Included to fix Disqus' test Django which solves IntegrityMessage case "django.contrib.contenttypes", "djcelery", # celery client "raven.contrib.django", ], ROOT_URLCONF="", DEBUG=False, SITE_ID=1, BROKER_HOST="localhost", BROKER_PORT=5672, BROKER_USER="******", BROKER_PASSWORD="******", BROKER_VHOST="/", CELERY_ALWAYS_EAGER=True, TEMPLATE_DEBUG=True, TEMPLATE_DIRS=[os.path.join(where_am_i, "tests", "contrib", "django", "templates")], ) import djcelery djcelery.setup_loader()
def setup_environ(manage_file, settings=None): """Sets up a Django app within a manage.py file. Keyword Arguments **settings** An imported settings module. Without this, playdoh tries to import these modules (in order): settings_local, settings """ # sys is global to avoid undefined local global sys, current_settings, execute_manager, ROOT ROOT = os.path.dirname(os.path.abspath(manage_file)) # Adjust the python path and put local packages in front. prev_sys_path = list(sys.path) # Make settings_local importable sys.path.append(ROOT) # Give precedence to your app's parent dir, which contains __init__.py sys.path.append(os.path.abspath(os.path.join(ROOT, os.pardir))) site.addsitedir(path('apps')) site.addsitedir(path('lib')) # Local (project) vendor library site.addsitedir(path('vendor-local')) site.addsitedir(path('vendor-local/lib/python')) # Global (upstream) vendor library site.addsitedir(path('vendor')) site.addsitedir(path('vendor/lib/python')) # Move the new items to the front of sys.path. (via virtualenv) new_sys_path = [] for item in list(sys.path): if item not in prev_sys_path: new_sys_path.append(item) sys.path.remove(item) sys.path[:0] = new_sys_path from django.core.management import execute_manager, setup_environ if not settings: if os.path.isfile(os.path.join(ROOT, 'settings_local.py')): import settings_local as settings warnings.warn("Using settings_local.py is deprecated. See " "http://playdoh.readthedocs.org/en/latest/upgrading.html", DeprecationWarning) else: import settings current_settings = settings validate_settings(settings) # If we want to use django settings anywhere, we need to set up the # required environment variables. setup_environ(settings) # Import for side-effect: configures logging handlers. # pylint: disable-msg=W0611 import log_settings # Monkey-patch django forms to avoid having to use Jinja2's |safe # everywhere. import safe_django_forms safe_django_forms.monkeypatch() # Monkey-patch Django's csrf_protect decorator to use session-based CSRF # tokens: if 'session_csrf' in settings.INSTALLED_APPS: import session_csrf session_csrf.monkeypatch() # Configure Celery (optional) if 'djcelery' in settings.INSTALLED_APPS: import djcelery djcelery.setup_loader()
#!/usr/bin/env python # vim: ai ts=4 sts=4 et sw=4 encoding=utf-8 import os from django.contrib import messages # odd celery fix import djcelery; djcelery.setup_loader() CACHE_BACKEND = 'memcached://127.0.0.1:11211/' DEBUG = True TEMPLATE_DEBUG = DEBUG ADMINS = () MANAGERS = ADMINS # default to the system's timezone settings TIME_ZONE = "UTC" # Language code for this installation. All choices can be found here: # http://www.i18nguy.com/unicode/language-identifiers.html LANGUAGE_CODE = 'en-us' LANGUAGES = ( ('en', 'English'), ('fr', 'French'), # ('hin', 'Hindi'), )
# Build paths inside the project like this: os.path.join(BASE_DIR, ...) import os import sys import djcelery from datetime import timedelta djcelery.setup_loader() PROJECT_NAME = 'chat' ADMINS = (('Balkan', '*****@*****.**'), ('bahattincinic', '*****@*****.**')) BASE_DIR = os.path.dirname(os.path.dirname(__file__)) APPS = os.path.join(BASE_DIR, 'apps') sys.path.insert(1, APPS) sys.path.insert(2, BASE_DIR) # Quick-start development settings - unsuitable for production # See https://docs.djangoproject.com/en/1.6/howto/deployment/checklist/ # SECURITY WARNING: keep the secret key used in production secret! SECRET_KEY = 'xv-#91!%mv!(m0yba%t0^1t683mvwj_c!5d1z--^8!2x5z(6ss' # SECURITY WARNING: don't run with debug turned on in production! DEBUG = True TEMPLATE_DEBUG = DEBUG # TEMPLATE CONFIGURATION # See: # https://docs.djangoproject.com/en/dev/ref/ # settings/#template-context-processors TEMPLATE_CONTEXT_PROCESSORS = ( 'django.contrib.auth.context_processors.auth',
# Application definition INSTALLED_APPS = ( 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'hashtag', # Our app 'djcelery', # Django Celery for automatization 'kombu.transport.django', # Queue for Celery 'rest_framework', # Rest API ) import djcelery djcelery.setup_loader() # Load Django Celery setting BROKER_URL = "django://" # Broker dir for queue manager MIDDLEWARE_CLASSES = ( 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', ) ROOT_URLCONF = 'ever.urls' WSGI_APPLICATION = 'ever.wsgi.application'
def configure(): if not settings.configured: test_settings = { 'DATABASES': { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': ':memory:', }, }, 'INSTALLED_APPS': [ 'opps.contrib.admin', 'opps.contrib.fileupload', 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'django.contrib.sites', 'django.contrib.redirects', 'opps.core', 'opps.core.tags', 'opps.images', 'opps.containers', 'opps.boxes', 'opps.channels', 'opps.articles', 'opps.sitemaps', 'opps.flatpages', 'opps.archives', 'opps.views', 'opps.fields', 'opps.api', 'opps.contrib.notifications', ], 'TEMPLATE_CONTEXT_PROCESSORS': ( 'opps.channels.context_processors.channel_context', ), 'MIDDLEWARE_CLASSES': ( 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', 'django.contrib.redirects.middleware.RedirectFallbackMiddleware', ), 'HAYSTACK_CONNECTIONS': { 'default': { 'ENGINE': 'haystack.backends.simple_backend.SimpleEngine', } }, 'OPPS_MULTISITE_FALLBACK': False, 'ROOT_URLCONF': 'tests._site.urls', 'STATIC_URL': '/static/', 'ADMINS': ('*****@*****.**',), 'DEBUG': False, 'SITE_ID': 1, 'BROKER_URL': 'redis://localhost:6379/0', 'CELERY_RESULT_BACKEND': 'redis://localhost:6379/0', 'OPPS_MIRROR_CHANNEL': True, 'OPPS_DB_HOST': '127.0.0.1', 'OPPS_DB_PORT': 6379, 'OPPS_DB_NAME': 'opps', 'OPPS_DB_ENGINE': 'opps.db._redis.Redis', } djcelery.setup_loader() settings.configure(**test_settings)
# 163 SMTP 配置 EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST = 'smtp.163.com' EMAIL_PORT = 25 #发送邮件的邮箱 EMAIL_HOST_USER = '******' #在邮箱中设置的客户端授权密码 EMAIL_HOST_PASSWORD = '******' #收件人看到的发件人 EMAIL_FROM = 'dailyfresh<*****@*****.**>' # 配置 django-celery import djcelery djcelery.setup_loader() # 去每一个注册的应用下, 找一个叫 task.py 的文件, 到文件中去加载celery 任务函数 BROKER_URL = 'redis://127.0.0.1:6379/2' # 指定哪个 redis 数据库哪个表来提供队列,用来存放 celery 任务函数 # 配置 tinymce 富文本编辑器 TINYMCE_DEFAULT_CONFIG = { 'theme': 'advanced', # 主题 'width': 600, 'height': 400, # 编辑窗口的大小 } HAYSTACK_CONNECTIONS = { 'default': { #使用whoosh引擎 'ENGINE': 'haystack.backends.whoosh_cn_backend.WhooshEngine', #索引文件路径, 创建索引时自动创建该文件
def run(self): from django.conf import settings settings.configure( DATABASES={ 'default': { 'NAME': 'test.db', 'TEST_NAME': 'test.db', 'ENGINE': 'django.db.backends.sqlite3' } }, INSTALLED_APPS = ( 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.staticfiles', 'bakery', 'djkombu', 'djcelery', ), MIDDLEWARE_CLASSES=(), TEMPLATE_DIRS = ( os.path.abspath( os.path.join( os.path.dirname(__file__), 'bakery', 'tests', 'templates', ), ), ), BUILD_DIR = tempfile.mkdtemp(), STATIC_ROOT = os.path.abspath( os.path.join( os.path.dirname(__file__), 'bakery', 'tests', 'static', ), ), STATIC_URL = '/static/', MEDIA_ROOT = os.path.abspath( os.path.join( os.path.dirname(__file__), 'bakery', 'tests', 'media', ), ), MEDIA_URL = '/media/', BAKERY_VIEWS = ('bakery.tests.MockDetailView',), # The publish management command needs these to exit, but # we're mocking boto, so we can put nonesense in here AWS_ACCESS_KEY_ID = 'MOCK_ACCESS_KEY_ID', AWS_SECRET_ACCESS_KEY = 'MOCK_SECRET_ACCESS_KEY', AWS_BUCKET_NAME = 'mock_bucket', # Celery configuration BROKER_URL = 'django://', ) import django django.setup() import djcelery djcelery.setup_loader() from django.core.management import call_command call_command('test', 'bakery.tests', verbosity=3)
def pytest_configure(config): try: from django.conf import settings except ImportError: settings = None if settings is not None and not settings.configured: import django if django.VERSION >= (2, 0): middleware_settings_name = 'MIDDLEWARE' else: middleware_settings_name = 'MIDDLEWARE_CLASSES' # django-celery does not work well with Django 1.8+ if django.VERSION < (1, 8): djcelery = ['djcelery'] else: djcelery = [] settings_dict = dict( DATABASES={ 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': 'opbeat_tests.db', 'TEST_NAME': 'opbeat_tests.db', 'TEST': { 'NAME': 'opbeat_tests.db', } }, }, TEST_DATABASE_NAME='opbeat_tests.db', INSTALLED_APPS=[ 'django.contrib.auth', 'django.contrib.admin', 'django.contrib.sessions', 'django.contrib.sites', 'django.contrib.redirects', 'django.contrib.contenttypes', 'opbeat.contrib.django', 'tests.contrib.django.testapp', ] + djcelery, ROOT_URLCONF='tests.contrib.django.testapp.urls', DEBUG=False, SITE_ID=1, BROKER_HOST="localhost", BROKER_PORT=5672, BROKER_USER="******", BROKER_PASSWORD="******", BROKER_VHOST="/", CELERY_ALWAYS_EAGER=True, TEMPLATE_DEBUG=False, TEMPLATE_DIRS=[BASE_TEMPLATE_DIR], ALLOWED_HOSTS=['*'], MIDDLEWARE_CLASSES=[ 'django.contrib.sessions.middleware.SessionMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', ], TEMPLATES=[ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [BASE_TEMPLATE_DIR], 'OPTIONS': { 'context_processors': [ 'django.contrib.auth.context_processors.auth', ], 'loaders': [ 'django.template.loaders.filesystem.Loader', ], 'debug': False, }, }, ] ) settings_dict[middleware_settings_name] = [ 'django.contrib.sessions.middleware.SessionMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', ] settings.configure(**settings_dict) if hasattr(django, 'setup'): django.setup() if django.VERSION < (1, 8): import djcelery djcelery.setup_loader()
def pytest_configure(config): try: from django.conf import settings except ImportError: settings = None if settings is not None and not settings.configured: import django # django-celery does not work well with Django 1.8+ if django.VERSION < (1, 8): djcelery = ["djcelery"] else: djcelery = [] settings.configure( DATABASES={ "default": { "ENGINE": "django.db.backends.sqlite3", "NAME": "opbeat_tests.db", "TEST_NAME": "opbeat_tests.db", "TEST": {"NAME": "opbeat_tests.db"}, } }, # HACK: this fixes our threaded runserver remote tests DATABASE_ENGINE="sqlite3", DATABASE_NAME="opbeat_tests.db", TEST_DATABASE_NAME="opbeat_tests.db", INSTALLED_APPS=[ "django.contrib.auth", "django.contrib.admin", "django.contrib.sessions", "django.contrib.sites", "django.contrib.redirects", "django.contrib.contenttypes", "opbeat.contrib.django", "tests.contrib.django.testapp", ] + djcelery, ROOT_URLCONF="tests.contrib.django.testapp.urls", DEBUG=False, SITE_ID=1, BROKER_HOST="localhost", BROKER_PORT=5672, BROKER_USER="******", BROKER_PASSWORD="******", BROKER_VHOST="/", CELERY_ALWAYS_EAGER=True, TEMPLATE_DEBUG=False, TEMPLATE_DIRS=[BASE_TEMPLATE_DIR], ALLOWED_HOSTS=["*"], MIDDLEWARE_CLASSES=[ "django.contrib.sessions.middleware.SessionMiddleware", "django.contrib.auth.middleware.AuthenticationMiddleware", "django.contrib.messages.middleware.MessageMiddleware", ], TEMPLATES=[ { "BACKEND": "django.template.backends.django.DjangoTemplates", "DIRS": [BASE_TEMPLATE_DIR], "OPTIONS": { "context_processors": ["django.contrib.auth.context_processors.auth"], "loaders": ["django.template.loaders.filesystem.Loader"], "debug": False, }, } ], ) if hasattr(django, "setup"): django.setup() if django.VERSION < (1, 8): import djcelery djcelery.setup_loader()
class Base(Configuration): """Base configuration""" SECRET_KEY = 'Not a secret =)' DEBUG = values.BooleanValue(False) ALLOWED_HOSTS = values.ListValue() INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'django_extensions', 'rest_framework', 'django_filters', 'corsheaders', 'social_django', 'oauth2_provider', 'rest_framework.authtoken', 'rest_framework_social_oauth2', 'fcm_django', 'apps.candidates', 'apps.authentication', 'apps.departments', 'apps.interviews', 'apps.requests', 'apps.users', 'apps.vacancies', 'apps.templates', 'djcelery', ] djcelery.setup_loader() SOCIAL_AUTH_RAISE_EXCEPTIONS = True SOCIAL_AUTH_URL_NAMESPACE = 'social' SOCIAL_AUTH_GOOGLE_OAUTH2_KEY = values.SecretValue() SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET = values.SecretValue() CSRF_COOKIE_SECURE = False CORS_ORIGIN_ALLOW_ALL = True FCM_SERVER_KEY = values.SecretValue().to_python( os.environ.get('DJANGO_FCM_SERVER_KEY')) FCM_DJANGO_SETTINGS = { "FCM_SERVER_KEY": FCM_SERVER_KEY, } AUTHENTICATION_BACKENDS = ( 'social_core.backends.google.GoogleOAuth2', 'social_core.backends.google.GooglePlusAuth', 'rest_framework_social_oauth2.backends.DjangoOAuth2', 'django.contrib.auth.backends.ModelBackend', ) SOCIAL_AUTH_PIPELINE = ( 'social_core.pipeline.social_auth.social_details', 'social_core.pipeline.social_auth.social_uid', 'social_core.pipeline.social_auth.auth_allowed', 'social_core.pipeline.social_auth.social_user', 'social_core.pipeline.user.get_username', 'social_core.pipeline.social_auth.associate_by_email', 'social_core.pipeline.social_auth.associate_user', 'social_core.pipeline.social_auth.load_extra_data', 'social_core.pipeline.user.user_details', ) MIDDLEWARE = [ 'corsheaders.middleware.CorsMiddleware', 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', 'corsheaders.middleware.CorsMiddleware', 'django.middleware.common.CommonMiddleware', ] CORS_ORIGIN_WHITELIST = values.ListValue() CORS_ALLOW_METHODS = ( 'DELETE', 'GET', 'OPTIONS', 'PATCH', 'POST', 'PUT', ) CORS_ALLOW_HEADERS = ('accept', 'accept-encoding', 'authorization', 'content-type', 'dnt', 'origin', 'user-agent', 'x-csrftoken', 'x-requested-with', 'role', 'access-control-allow-headers', 'access-control-expose-headers') ROOT_URLCONF = 'urls' STATIC_URL = '/static/' STATIC_ROOT = os.path.join(BASE_DIR, 'static') MEDIA_URL = '/media/' MEDIA_ROOT = os.path.join(BASE_DIR, 'media') TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': STATIC_ROOT, 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', 'social_django.context_processors.backends', 'social_django.context_processors.login_redirect', ], }, }, ] LOGIN_REDIRECT_URL = '/api/v1/devices/' for config in TEMPLATES: config['OPTIONS']['debug'] = DEBUG FIXTURE_DIRS = ('apps/fixtures', ) WSGI_APPLICATION = 'wsgi.application' DATABASES = values.DatabaseURLValue() AUTH_USER_MODEL = 'users.User' AUTH_PASSWORD_VALIDATORS = [ { 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', }, { 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', }, { 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', }, { 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', }, ] REST_FRAMEWORK = { 'DEFAULT_PAGINATION_CLASS': 'apps.utils.pagination.SizedPageNumberPagination', 'PAGE_SIZE': 10, 'DEFAULT_VERSIONING_CLASS': 'rest_framework.versioning.NamespaceVersioning', 'DEFAULT_PERMISSION_CLASSES': [ 'rest_framework.permissions.AllowAny', ], 'DEFAULT_FILTER_BACKENDS': ( 'rest_framework.filters.SearchFilter', 'django_filters.rest_framework.DjangoFilterBackend', 'rest_framework.filters.OrderingFilter', ), 'DEFAULT_AUTHENTICATION_CLASSES': ( 'oauth2_provider.contrib.rest_framework.OAuth2Authentication', 'rest_framework_social_oauth2.authentication.SocialAuthentication', 'rest_framework.authentication.BasicAuthentication', 'rest_framework.authentication.SessionAuthentication', ), } LANGUAGE_CODE = 'en-us' TIME_ZONE = 'Asia/Bishkek' USE_I18N = True USE_L10N = True USE_TZ = True RABBITMQ_USERNAME = values.SecretValue() RABBITMQ_PASSWORD = values.SecretValue() RABBITMQ_HOST = values.SecretValue() RABBITMQ_PORT = values.SecretValue() BROKER_URL = "amqp://{username}:{password}@{host}:{port}//".format( username=RABBITMQ_USERNAME, password=RABBITMQ_PASSWORD, host=RABBITMQ_HOST, port=RABBITMQ_PORT)
INSTALLED_APPS = ( "django.contrib.auth", "django.contrib.contenttypes", "django.contrib.sessions", "django.contrib.sites", "django.contrib.messages", "django.contrib.staticfiles", "django.contrib.admin", "django.contrib.admindocs", "south", "gunicorn", "djcelery", ) + PROJECT_APPS CELERY_TASK_RESULT_EXPIRES = datetime.timedelta(minutes=30) setup_loader() ugettext = lambda s: s LANGUAGES = (("en", ugettext("English")), ("ru", ugettext("Russian")), ("ua", ugettext("Ukrainian"))) LOGGING = { "version": 1, "disable_existing_loggers": False, "filters": {"require_debug_false": {"()": "django.utils.log.RequireDebugFalse"}}, "handlers": { "mail_admins": { "level": "ERROR", "filters": ["require_debug_false"], "class": "django.utils.log.AdminEmailHandler", } },
INSTALLED_APPS = ( 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites', 'django.contrib.messages', 'django.contrib.staticfiles', 'django.contrib.admin', 'django.contrib.admindocs', 'celerytest', 'djcelery', # Para integrar celery en django ) import djcelery djcelery.setup_loader() # Habilita la edición desde el admin de django # Configuración varia para Celery BROKER_URL = 'amqp://*****:*****@localhost:5672/' CELERYBEAT_SCHEDULER = 'djcelery.schedulers.DatabaseScheduler' CELERY_ENABLE_UTC = True CELERY_TIMEZONE = 'Europe/Madrid' # A sample logging configuration. The only tangible logging # performed by this configuration is to send an email to # the site admins on every HTTP 500 error when DEBUG=False. # See http://docs.djangoproject.com/en/dev/topics/logging for # more details on how to customize your logging configuration. LOGGING = { 'version': 1,
'django.contrib.admindocs', "corsheaders", 'django_extensions', 'raven.contrib.django.raven_compat', "applications.users", "applications.ball", "applications.ueditor", "djcelery", "south" ) # djcelery setting import djcelery ### djcelery.setup_loader() ### CELERY_TIMEZONE = 'Asia/Shanghai' #并没有北京时区,与下面TIME_ZONE应该一致 BROKER_URL = config.get("celery", "BROKER_URL") #任何可用的redis都可以,不一定要在django server运行的主机上 CELERYBEAT_SCHEDULER = 'djcelery.schedulers.DatabaseScheduler' LOGGING = { 'version': 1, 'disable_existing_loggers': True, 'formatters': { 'verbose': { 'format': '%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(pathname)s %(lineno)s %(funcName)s %(message)s' }, }, 'filters': { 'info': { '()': 'libs.logs.InfoLevelFilter',
'NAME': 'mydb', # Or path to database file if using sqlite3. # The following settings are not used with sqlite3: 'USER': '******', 'PASSWORD': '******', 'HOST': 'localhost', # Empty for localhost through domain sockets or '127.0.0.1' for localhost through TCP. 'PORT': '', # Set to empty string for default. } } # ========== # = Celery = # ========== import djcelery djcelery.setup_loader() CELERY_ROUTES = { "work-queue": { "queue": "work_queue", "binding_key": "work_queue" }, "new-feeds": { "queue": "new_feeds", "binding_key": "new_feeds" }, "push-feeds": { "queue": "push_feeds", "binding_key": "push_feeds" }, "update-feeds": { "queue": "update_feeds",
'level': 'ERROR', 'propagate': True, }, } } ########## END LOGGING CONFIGURATION ########## CELERY CONFIGURATION # See: http://celery.readthedocs.org/en/latest/configuration.html#celery-task-result-expires CELERY_TASK_RESULT_EXPIRES = timedelta(minutes=30) # See: http://docs.celeryproject.org/en/master/configuration.html#std:setting-CELERY_CHORD_PROPAGATES CELERY_CHORD_PROPAGATES = True # See: http://celery.github.com/celery/django/ setup_loader() ########## END CELERY CONFIGURATION ########## WSGI CONFIGURATION # See: https://docs.djangoproject.com/en/dev/ref/settings/#wsgi-application WSGI_APPLICATION = 'wsgi.application' ########## END WSGI CONFIGURATION ########## COMPRESSION CONFIGURATION # See: http://django_compressor.readthedocs.org/en/latest/settings/#django.conf.settings.COMPRESS_ENABLED COMPRESS_ENABLED = True # See: http://django-compressor.readthedocs.org/en/latest/settings/#django.conf.settings.COMPRESS_CSS_HASHING_METHOD COMPRESS_CSS_HASHING_METHOD = 'content' # See: http://django_compressor.readthedocs.org/en/latest/settings/#django.conf.settings.COMPRESS_CSS_FILTERS