2014-11-23 20:09:42 +01:00
|
|
|
|
# coding: utf-8
|
|
|
|
|
|
|
|
|
|
from __future__ import unicode_literals
|
|
|
|
|
import os
|
|
|
|
|
|
2016-07-21 12:26:40 +02:00
|
|
|
|
from django import VERSION as django_version
|
2016-07-20 19:22:20 +02:00
|
|
|
|
|
2014-11-23 20:09:42 +01:00
|
|
|
|
DATABASES = {
|
|
|
|
|
'sqlite3': {
|
|
|
|
|
'ENGINE': 'django.db.backends.sqlite3',
|
|
|
|
|
'NAME': 'cachalot.sqlite3',
|
|
|
|
|
},
|
|
|
|
|
'postgresql': {
|
2016-07-21 12:26:40 +02:00
|
|
|
|
'ENGINE': 'django.db.backends.postgresql',
|
2014-11-23 20:09:42 +01:00
|
|
|
|
'NAME': 'cachalot',
|
|
|
|
|
'USER': 'cachalot',
|
|
|
|
|
},
|
|
|
|
|
'mysql': {
|
|
|
|
|
'ENGINE': 'django.db.backends.mysql',
|
|
|
|
|
'NAME': 'cachalot',
|
|
|
|
|
'USER': 'root',
|
|
|
|
|
},
|
|
|
|
|
}
|
2016-07-21 12:26:40 +02:00
|
|
|
|
if django_version[:2] == (1, 8):
|
|
|
|
|
DATABASES['postgresql']['ENGINE'] = 'django.db.backends.postgresql_psycopg2'
|
2014-11-23 20:09:42 +01:00
|
|
|
|
for alias in DATABASES:
|
2016-09-13 20:15:30 +02:00
|
|
|
|
if 'TEST' not in DATABASES[alias]:
|
|
|
|
|
test_db_name = 'test_' + DATABASES[alias]['NAME']
|
|
|
|
|
DATABASES[alias]['TEST'] = {'NAME': test_db_name}
|
2014-11-23 20:09:42 +01:00
|
|
|
|
|
2014-12-07 03:43:16 +01:00
|
|
|
|
DATABASES['default'] = DATABASES.pop(os.environ.get('DB_ENGINE', 'sqlite3'))
|
|
|
|
|
|
2014-11-23 20:09:42 +01:00
|
|
|
|
|
2015-10-03 03:18:34 +02:00
|
|
|
|
DATABASE_ROUTERS = ['cachalot.tests.db_router.PostgresRouter']
|
|
|
|
|
|
|
|
|
|
|
2014-11-23 20:09:42 +01:00
|
|
|
|
CACHES = {
|
|
|
|
|
'redis': {
|
2014-12-07 06:32:19 +01:00
|
|
|
|
'BACKEND': 'django_redis.cache.RedisCache',
|
2014-12-13 19:56:34 +01:00
|
|
|
|
'LOCATION': 'redis://127.0.0.1:6379/0',
|
2014-12-07 06:37:24 +01:00
|
|
|
|
'OPTIONS': {
|
|
|
|
|
# Since we are using both Python 2 & 3 in tests, we need to use
|
|
|
|
|
# a compatible pickle version to avoid unpickling errors when
|
|
|
|
|
# running a Python 2 test after a Python 3 test.
|
|
|
|
|
'PICKLE_VERSION': 2,
|
2015-12-18 13:10:08 +01:00
|
|
|
|
},
|
2014-11-23 20:09:42 +01:00
|
|
|
|
},
|
|
|
|
|
'memcached': {
|
|
|
|
|
'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
|
|
|
|
|
'LOCATION': '127.0.0.1:11211',
|
|
|
|
|
},
|
2015-04-11 01:57:13 +02:00
|
|
|
|
'locmem': {
|
|
|
|
|
'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',
|
|
|
|
|
'OPTIONS': {
|
|
|
|
|
# We want that limit to be infinite, otherwise we can’t
|
|
|
|
|
# reliably count the number of SQL queries executed in tests.
|
|
|
|
|
|
|
|
|
|
# In this context, 10e9 is enough to be considered
|
|
|
|
|
# infinite.
|
|
|
|
|
'MAX_ENTRIES': 10e9,
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
'filebased': {
|
2014-12-14 08:08:51 +01:00
|
|
|
|
'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache',
|
|
|
|
|
'LOCATION': '/tmp/django_cache',
|
|
|
|
|
'OPTIONS': {
|
|
|
|
|
'MAX_ENTRIES': 10e9, # (See locmem)
|
2015-12-18 13:10:08 +01:00
|
|
|
|
},
|
2014-12-14 08:08:51 +01:00
|
|
|
|
}
|
2015-04-11 01:57:13 +02:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
try:
|
|
|
|
|
import pylibmc
|
|
|
|
|
except ImportError:
|
|
|
|
|
pass
|
|
|
|
|
else:
|
|
|
|
|
CACHES['pylibmc'] = {
|
|
|
|
|
'BACKEND': 'django.core.cache.backends.memcached.PyLibMCCache',
|
|
|
|
|
'LOCATION': '127.0.0.1:11211',
|
|
|
|
|
}
|
2014-12-07 03:43:16 +01:00
|
|
|
|
|
2014-12-14 08:08:51 +01:00
|
|
|
|
DEFAULT_CACHE_ALIAS = os.environ.get('CACHE_BACKEND', 'locmem')
|
2014-12-08 03:47:11 +01:00
|
|
|
|
CACHES['default'] = CACHES.pop(DEFAULT_CACHE_ALIAS)
|
2014-12-08 05:00:52 +01:00
|
|
|
|
if DEFAULT_CACHE_ALIAS == 'memcached' and 'pylibmc' in CACHES:
|
2014-12-08 03:47:11 +01:00
|
|
|
|
del CACHES['pylibmc']
|
|
|
|
|
elif DEFAULT_CACHE_ALIAS == 'pylibmc':
|
|
|
|
|
del CACHES['memcached']
|
2014-12-07 03:43:16 +01:00
|
|
|
|
|
2014-11-23 20:09:42 +01:00
|
|
|
|
|
|
|
|
|
INSTALLED_APPS = [
|
|
|
|
|
'cachalot',
|
|
|
|
|
'django.contrib.auth',
|
|
|
|
|
'django.contrib.contenttypes',
|
2016-07-21 12:19:20 +02:00
|
|
|
|
'django.contrib.postgres', # Enables the unaccent lookup.
|
2014-11-23 20:09:42 +01:00
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
|
2015-01-18 17:44:19 +01:00
|
|
|
|
MIGRATION_MODULES = {
|
2015-10-03 03:18:34 +02:00
|
|
|
|
'cachalot': 'cachalot.tests.migrations',
|
2015-01-18 17:44:19 +01:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2016-07-21 10:57:06 +02:00
|
|
|
|
TEMPLATES = [
|
|
|
|
|
{
|
|
|
|
|
'BACKEND': 'django.template.backends.django.DjangoTemplates',
|
|
|
|
|
'DIRS': [],
|
|
|
|
|
'APP_DIRS': True,
|
|
|
|
|
},
|
2016-09-13 20:15:30 +02:00
|
|
|
|
{
|
|
|
|
|
'BACKEND': 'django.template.backends.jinja2.Jinja2',
|
|
|
|
|
'APP_DIRS': True,
|
|
|
|
|
'OPTIONS': {
|
|
|
|
|
'extensions': [
|
2016-09-13 20:30:18 +02:00
|
|
|
|
'cachalot.jinja2ext.cachalot',
|
2016-09-13 20:15:30 +02:00
|
|
|
|
],
|
|
|
|
|
},
|
|
|
|
|
}
|
2016-07-21 10:57:06 +02:00
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
|
2016-10-23 20:06:58 +02:00
|
|
|
|
MIDDLEWARE_CLASSES = []
|
|
|
|
|
PASSWORD_HASHERS = ['django.contrib.auth.hashers.MD5PasswordHasher']
|
2016-09-13 20:15:30 +02:00
|
|
|
|
SECRET_KEY = 'it’s not important in tests but we have to set it'
|
2014-12-08 19:06:09 +01:00
|
|
|
|
|
|
|
|
|
|
2015-10-04 21:04:54 +02:00
|
|
|
|
USE_TZ = False # Time zones are not supported by MySQL,
|
|
|
|
|
# we only enable it in tests when needed.
|
|
|
|
|
TIME_ZONE = 'UTC'
|
|
|
|
|
|
|
|
|
|
|
2014-12-08 19:06:09 +01:00
|
|
|
|
CACHALOT_ENABLED = True
|
2016-10-23 20:06:58 +02:00
|
|
|
|
|
|
|
|
|
#
|
|
|
|
|
# Settings for django-debug-toolbar
|
|
|
|
|
#
|
|
|
|
|
|
2016-10-23 21:21:30 +02:00
|
|
|
|
# We put django-debug-toolbar before to reproduce the conditions of this issue:
|
|
|
|
|
# https://github.com/BertrandBordage/django-cachalot/issues/62
|
|
|
|
|
INSTALLED_APPS = [
|
2016-10-23 20:06:58 +02:00
|
|
|
|
'debug_toolbar',
|
2016-10-23 21:21:30 +02:00
|
|
|
|
] + INSTALLED_APPS + ['django.contrib.staticfiles']
|
2016-10-23 20:06:58 +02:00
|
|
|
|
|
|
|
|
|
DEBUG_TOOLBAR_PANELS = [
|
|
|
|
|
'debug_toolbar.panels.versions.VersionsPanel',
|
|
|
|
|
'debug_toolbar.panels.timer.TimerPanel',
|
|
|
|
|
'debug_toolbar.panels.settings.SettingsPanel',
|
|
|
|
|
'debug_toolbar.panels.headers.HeadersPanel',
|
|
|
|
|
'debug_toolbar.panels.request.RequestPanel',
|
|
|
|
|
'debug_toolbar.panels.sql.SQLPanel',
|
|
|
|
|
'debug_toolbar.panels.staticfiles.StaticFilesPanel',
|
|
|
|
|
'debug_toolbar.panels.templates.TemplatesPanel',
|
|
|
|
|
'debug_toolbar.panels.cache.CachePanel',
|
|
|
|
|
'debug_toolbar.panels.signals.SignalsPanel',
|
|
|
|
|
'debug_toolbar.panels.logging.LoggingPanel',
|
|
|
|
|
'debug_toolbar.panels.redirects.RedirectsPanel',
|
|
|
|
|
'cachalot.panels.CachalotPanel',
|
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
DEBUG_TOOLBAR_CONFIG = {
|
|
|
|
|
# Django’s test client sets wsgi.multiprocess to True inappropriately.
|
|
|
|
|
'RENDER_PANELS': False,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
MIDDLEWARE_CLASSES += [
|
|
|
|
|
'debug_toolbar.middleware.DebugToolbarMiddleware',
|
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
INTERNAL_IPS = ['127.0.0.1']
|
|
|
|
|
ROOT_URLCONF = 'runtests_urls'
|
|
|
|
|
STATIC_URL = '/static/'
|