2011-03-08 22:32:27 +03:00
|
|
|
import atexit
|
|
|
|
import tempfile
|
|
|
|
|
2012-09-06 02:25:36 +04:00
|
|
|
from django.utils.functional import lazy
|
2011-03-08 22:32:27 +03:00
|
|
|
|
|
|
|
_tmpdirs = set()
|
|
|
|
|
|
|
|
|
|
|
|
def _cleanup():
|
|
|
|
try:
|
|
|
|
import sys
|
|
|
|
import shutil
|
|
|
|
except ImportError:
|
|
|
|
return
|
|
|
|
tmp = None
|
|
|
|
try:
|
|
|
|
for tmp in _tmpdirs:
|
|
|
|
shutil.rmtree(tmp)
|
|
|
|
except Exception, exc:
|
|
|
|
sys.stderr.write("\n** shutil.rmtree(%r): %s\n" % (tmp, exc))
|
|
|
|
|
|
|
|
atexit.register(_cleanup)
|
|
|
|
|
|
|
|
|
|
|
|
def _polite_tmpdir():
|
|
|
|
tmp = tempfile.mkdtemp()
|
|
|
|
_tmpdirs.add(tmp)
|
|
|
|
return tmp
|
|
|
|
|
|
|
|
# See settings.py for documentation:
|
2012-05-02 21:30:28 +04:00
|
|
|
IN_TEST_SUITE = True
|
2011-03-08 22:32:27 +03:00
|
|
|
NETAPP_STORAGE = _polite_tmpdir()
|
|
|
|
ADDONS_PATH = _polite_tmpdir()
|
2011-08-09 04:13:03 +04:00
|
|
|
PERSONAS_PATH = _polite_tmpdir()
|
2011-03-08 22:32:27 +03:00
|
|
|
GUARDED_ADDONS_PATH = _polite_tmpdir()
|
2011-08-24 00:57:43 +04:00
|
|
|
WATERMARKED_ADDONS_PATH = _polite_tmpdir()
|
2012-09-20 03:57:17 +04:00
|
|
|
SIGNED_APPS_PATH = _polite_tmpdir()
|
|
|
|
SIGNED_APPS_REVIEWER_PATH = _polite_tmpdir()
|
2011-03-08 22:32:27 +03:00
|
|
|
UPLOADS_PATH = _polite_tmpdir()
|
|
|
|
MIRROR_STAGE_PATH = _polite_tmpdir()
|
2011-04-28 04:44:38 +04:00
|
|
|
TMP_PATH = _polite_tmpdir()
|
2011-04-28 21:28:48 +04:00
|
|
|
COLLECTIONS_ICON_PATH = _polite_tmpdir()
|
2011-05-26 03:44:34 +04:00
|
|
|
PACKAGER_PATH = _polite_tmpdir()
|
2011-06-28 21:37:12 +04:00
|
|
|
|
2011-08-23 01:24:19 +04:00
|
|
|
# We won't actually send an email.
|
|
|
|
SEND_REAL_EMAIL = True
|
|
|
|
|
2011-06-28 21:37:12 +04:00
|
|
|
# Turn off search engine indexing.
|
|
|
|
USE_ELASTIC = False
|
2011-08-03 01:16:19 +04:00
|
|
|
|
|
|
|
# Ensure all validation code runs in tests:
|
|
|
|
VALIDATE_ADDONS = True
|
2011-08-05 00:53:55 +04:00
|
|
|
|
2011-09-07 02:22:24 +04:00
|
|
|
PAYPAL_PERMISSIONS_URL = ''
|
2011-09-17 01:40:27 +04:00
|
|
|
|
|
|
|
STATIC_URL = ''
|
|
|
|
SITE_URL = ''
|
2011-09-17 02:49:15 +04:00
|
|
|
MOBILE_SITE_URL = ''
|
2012-02-01 21:18:24 +04:00
|
|
|
MEDIA_URL = '/media/'
|
|
|
|
# Reset these URLs to the defaults so your settings_local doesn't clobber them:
|
|
|
|
ADDON_ICONS_DEFAULT_URL = MEDIA_URL + '/img/addon-icons'
|
|
|
|
ADDON_ICON_BASE_URL = MEDIA_URL + 'img/icons/'
|
2012-03-07 04:24:50 +04:00
|
|
|
ADDON_ICON_URL = (STATIC_URL +
|
|
|
|
'/img/uploads/addon_icons/%s/%s-%s.png?modified=%s')
|
2012-02-01 21:18:24 +04:00
|
|
|
PREVIEW_THUMBNAIL_URL = (STATIC_URL +
|
|
|
|
'/img/uploads/previews/thumbs/%s/%d.png?modified=%d')
|
|
|
|
PREVIEW_FULL_URL = (STATIC_URL +
|
2012-03-29 01:38:01 +04:00
|
|
|
'/img/uploads/previews/full/%s/%d.%s?modified=%d')
|
2012-02-01 21:18:24 +04:00
|
|
|
USERPICS_URL = STATIC_URL + '/img/uploads/userpics/%s/%s/%s.png?modified=%d'
|
2011-09-17 01:52:04 +04:00
|
|
|
|
|
|
|
CACHE_BACKEND = 'caching.backends.locmem://'
|
2011-12-31 02:07:41 +04:00
|
|
|
|
|
|
|
# No more failures!
|
|
|
|
APP_PREVIEW = False
|
2012-02-01 21:16:38 +04:00
|
|
|
|
|
|
|
# Overrides whatever storage you might have put in local settings.
|
|
|
|
DEFAULT_FILE_STORAGE = 'amo.utils.LocalFileStorage'
|
2012-04-06 00:44:55 +04:00
|
|
|
|
2012-04-09 20:40:56 +04:00
|
|
|
VIDEO_LIBRARIES = ['lib.video.dummy']
|
2012-04-11 02:08:04 +04:00
|
|
|
INAPP_VERBOSE_ERRORS = False
|
2012-04-12 00:16:16 +04:00
|
|
|
INAPP_REQUIRE_HTTPS = True
|
2012-05-31 20:06:40 +04:00
|
|
|
|
|
|
|
# Make sure debug toolbar output is disabled so it doesn't interfere with any
|
|
|
|
# html tests.
|
|
|
|
|
2012-09-04 19:55:31 +04:00
|
|
|
|
2012-05-31 20:06:40 +04:00
|
|
|
def custom_show_toolbar(request):
|
|
|
|
return False
|
|
|
|
|
|
|
|
DEBUG_TOOLBAR_CONFIG = {
|
|
|
|
'INTERCEPT_REDIRECTS': False,
|
|
|
|
'SHOW_TOOLBAR_CALLBACK': custom_show_toolbar,
|
|
|
|
'HIDE_DJANGO_SQL': True,
|
|
|
|
'TAG': 'div',
|
2012-09-04 19:55:31 +04:00
|
|
|
'ENABLE_STACKTRACES': False,
|
2012-05-31 20:06:40 +04:00
|
|
|
}
|
2012-06-23 02:57:43 +04:00
|
|
|
|
|
|
|
MOZMARKET_VENDOR_EXCLUDE = []
|
2012-09-06 02:25:36 +04:00
|
|
|
|
|
|
|
# These are the default languages. If you want a constrainted set for your
|
|
|
|
# tests, you should add those in the tests.
|
2012-09-04 19:55:31 +04:00
|
|
|
|
|
|
|
|
2012-09-06 02:25:36 +04:00
|
|
|
def lazy_langs(languages):
|
|
|
|
from product_details import product_details
|
|
|
|
if not product_details.languages:
|
|
|
|
return {}
|
|
|
|
return dict([(i.lower(), product_details.languages[i]['native'])
|
|
|
|
for i in languages])
|
|
|
|
|
|
|
|
AMO_LANGUAGES = (
|
|
|
|
'af', 'ar', 'bg', 'ca', 'cs', 'da', 'de', 'el', 'en-US', 'es', 'eu', 'fa',
|
|
|
|
'fi', 'fr', 'ga-IE', 'he', 'hu', 'id', 'it', 'ja', 'ko', 'mn', 'nl', 'pl',
|
|
|
|
'pt-BR', 'pt-PT', 'ro', 'ru', 'sk', 'sl', 'sq', 'sv-SE', 'uk', 'vi',
|
|
|
|
'zh-CN', 'zh-TW',
|
|
|
|
)
|
|
|
|
LANGUAGES = lazy(lazy_langs, dict)(AMO_LANGUAGES)
|
|
|
|
LANGUAGE_URL_MAP = dict([(i.lower(), i) for i in AMO_LANGUAGES])
|