-
Notifications
You must be signed in to change notification settings - Fork 2.2k
/
config.py
executable file
·129 lines (115 loc) · 5.33 KB
/
config.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
#!/usr/bin/env python
import os
import django
from django.conf import settings, global_settings
import oscar
def configure():
if not settings.configured:
from oscar.defaults import OSCAR_SETTINGS
# Helper function to extract absolute path
location = lambda x: os.path.join(
os.path.dirname(os.path.realpath(__file__)), x)
test_settings = OSCAR_SETTINGS.copy()
test_settings.update({
'DATABASES': {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': ':memory:',
},
},
'INSTALLED_APPS': [
'django.contrib.auth',
'django.contrib.admin',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.flatpages',
'django.contrib.staticfiles',
'compressor',
'tests._site.model_tests_app', # contains models we need for testing
'tests._site.myauth',
# Use a custom partner app to test overriding models. I can't
# find a way of doing this on a per-test basis, so I'm using a
# global change.
] + oscar.get_core_apps([
'tests._site.apps.partner',
'tests._site.apps.customer']),
'AUTH_USER_MODEL': 'myauth.User',
'TEMPLATE_CONTEXT_PROCESSORS': (
"django.contrib.auth.context_processors.auth",
"django.core.context_processors.request",
"django.core.context_processors.debug",
"django.core.context_processors.i18n",
"django.core.context_processors.media",
"django.core.context_processors.static",
"django.contrib.messages.context_processors.messages",
'oscar.apps.search.context_processors.search_form',
'oscar.apps.customer.notifications.context_processors.notifications',
'oscar.apps.promotions.context_processors.promotions',
'oscar.apps.checkout.context_processors.checkout',
'oscar.core.context_processors.metadata',
),
'TEMPLATE_DIRS': (
location('templates'),
oscar.OSCAR_MAIN_TEMPLATE_DIR,
),
'TEMPLATE_LOADERS': (
('django.template.loaders.cached.Loader',
['django.template.loaders.filesystem.Loader',
'django.template.loaders.app_directories.Loader',
'django.template.loaders.eggs.Loader']),),
'MIDDLEWARE_CLASSES': (
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'oscar.apps.basket.middleware.BasketMiddleware',
),
'AUTHENTICATION_BACKENDS': (
'oscar.apps.customer.auth_backends.EmailBackend',
'django.contrib.auth.backends.ModelBackend',
),
'HAYSTACK_CONNECTIONS': {
'default': {
'ENGINE': 'haystack.backends.simple_backend.SimpleEngine',
}
},
'PASSWORD_HASHERS': ['django.contrib.auth.hashers.MD5PasswordHasher'],
'ROOT_URLCONF': 'tests._site.urls',
'LOGIN_REDIRECT_URL': '/accounts/',
'STATIC_URL': '/static/',
'COMPRESS_ENABLED': False,
'COMPRESS_ROOT': '', # needed to avoid issue #1214
'DEBUG': False,
'SITE_ID': 1,
'USE_TZ': 1,
'APPEND_SLASH': True,
'DDF_DEFAULT_DATA_FIXTURE': 'tests.dynamic_fixtures.OscarDynamicDataFixtureClass',
'SESSION_SERIALIZER': 'django.contrib.sessions.serializers.JSONSerializer',
# temporary workaround for issue in sorl-thumbnail in Python 3
# https://github.com/mariocesar/sorl-thumbnail/pull/254
'THUMBNAIL_DEBUG': False,
'OSCAR_INITIAL_ORDER_STATUS': 'A',
'OSCAR_ORDER_STATUS_PIPELINE': {'A': ('B',), 'B': ()},
'OSCAR_INITIAL_LINE_STATUS': 'a',
'OSCAR_LINE_STATUS_PIPELINE': {'a': ('b', ), 'b': ()},
# Setting this explicitly prevents Django 1.7+ from showing a
# warning regarding a changed default test runner. The Oscar test
# suite is run with nose, so it does not matter.
'SILENCED_SYSTEM_CHECKS': ['1_6.W001'],
})
settings.configure(**test_settings)
# It can sometimes be useful to be able to drop into the configured Django
# environment of the test suite. It might e.g. be useful to drop into the
# shell with ./config.py shell_plus or create missing migrations with
# ./config.py makemigrations
if __name__ == '__main__':
import sys
from django.core.management import call_command
args = sys.argv[1:]
if args:
configure() # configure Django settings
if hasattr(django, 'setup'):
django.setup() # initialise app registry for Django 1.7+
call_command(*args)