We want USE_I18N to be on in development, but off in production. Tying this setting to the DEBUG setting accomplishes that neatly.
108 lines
3.1 KiB
Python
108 lines
3.1 KiB
Python
"""
|
|
This config file extends the test environment configuration
|
|
so that we can run the lettuce acceptance tests.
|
|
"""
|
|
|
|
# We intentionally define lots of variables that aren't used, and
|
|
# want to import all variables from base settings files
|
|
# pylint: disable=W0401, W0614
|
|
|
|
from .test import *
|
|
from lms.envs.sauce import *
|
|
|
|
# You need to start the server in debug mode,
|
|
# otherwise the browser will not render the pages correctly
|
|
DEBUG = True
|
|
|
|
# Disable warnings for acceptance tests, to make the logs readable
|
|
import logging
|
|
logging.disable(logging.ERROR)
|
|
import os
|
|
from random import choice, randint
|
|
|
|
|
|
def seed():
|
|
return os.getppid()
|
|
|
|
DOC_STORE_CONFIG = {
|
|
'host': 'localhost',
|
|
'db': 'acceptance_xmodule',
|
|
'collection': 'acceptance_modulestore_%s' % seed(),
|
|
}
|
|
|
|
MODULESTORE_OPTIONS = dict({
|
|
'default_class': 'xmodule.raw_module.RawDescriptor',
|
|
'fs_root': TEST_ROOT / "data",
|
|
'render_template': 'mitxmako.shortcuts.render_to_string',
|
|
}, **DOC_STORE_CONFIG)
|
|
|
|
MODULESTORE = {
|
|
'default': {
|
|
'ENGINE': 'xmodule.modulestore.draft.DraftModuleStore',
|
|
'OPTIONS': MODULESTORE_OPTIONS
|
|
},
|
|
'direct': {
|
|
'ENGINE': 'xmodule.modulestore.mongo.MongoModuleStore',
|
|
'OPTIONS': MODULESTORE_OPTIONS
|
|
},
|
|
'draft': {
|
|
'ENGINE': 'xmodule.modulestore.draft.DraftModuleStore',
|
|
'OPTIONS': MODULESTORE_OPTIONS
|
|
}
|
|
}
|
|
|
|
CONTENTSTORE = {
|
|
'ENGINE': 'xmodule.contentstore.mongo.MongoContentStore',
|
|
'OPTIONS': {
|
|
'host': 'localhost',
|
|
'db': 'acceptance_xcontent_%s' % seed(),
|
|
},
|
|
# allow for additional options that can be keyed on a name, e.g. 'trashcan'
|
|
'ADDITIONAL_OPTIONS': {
|
|
'trashcan': {
|
|
'bucket': 'trash_fs'
|
|
}
|
|
}
|
|
}
|
|
|
|
# Set this up so that rake lms[acceptance] and running the
|
|
# harvest command both use the same (test) database
|
|
# which they can flush without messing up your dev db
|
|
DATABASES = {
|
|
'default': {
|
|
'ENGINE': 'django.db.backends.sqlite3',
|
|
'NAME': TEST_ROOT / "db" / "test_edx.db",
|
|
'TEST_NAME': TEST_ROOT / "db" / "test_edx.db"
|
|
}
|
|
}
|
|
|
|
# Use the auto_auth workflow for creating users and logging them in
|
|
MITX_FEATURES['AUTOMATIC_AUTH_FOR_TESTING'] = True
|
|
|
|
# Include the lettuce app for acceptance testing, including the 'harvest' django-admin command
|
|
INSTALLED_APPS += ('lettuce.django',)
|
|
LETTUCE_APPS = ('contentstore',)
|
|
LETTUCE_BROWSER = os.environ.get('LETTUCE_BROWSER', 'chrome')
|
|
|
|
# Where to run: local, saucelabs, or grid
|
|
LETTUCE_SELENIUM_CLIENT = os.environ.get('LETTUCE_SELENIUM_CLIENT', 'local')
|
|
|
|
SELENIUM_GRID = {
|
|
'URL': 'http://127.0.0.1:4444/wd/hub',
|
|
'BROWSER': LETTUCE_BROWSER,
|
|
}
|
|
|
|
#####################################################################
|
|
# Lastly, see if the developer has any local overrides.
|
|
try:
|
|
from .private import * # pylint: disable=F0401
|
|
except ImportError:
|
|
pass
|
|
|
|
# Because an override for where to run will affect which ports to use,
|
|
# set this up after the local overrides.
|
|
if LETTUCE_SELENIUM_CLIENT == 'saucelabs':
|
|
LETTUCE_SERVER_PORT = choice(PORTS)
|
|
else:
|
|
LETTUCE_SERVER_PORT = randint(1024, 65535)
|