3 # This file is part of django-ssify, licensed under GNU Affero GPLv3 or later.
4 # Copyright © Fundacja Nowoczesna Polska. See README.md for more information.
7 Creates a simple Django configuration and runs tests for django-ssify.
9 from __future__ import unicode_literals
12 from os.path import dirname, abspath
13 from optparse import OptionParser
15 from django.conf import settings
17 # For convenience configure settings if they are not pre-configured or if we
18 # haven't been provided settings to use by environment variable.
19 if not settings.configured and not os.environ.get('DJANGO_SETTINGS_MODULE'):
22 'default': {'BACKEND':
23 'django.core.cache.backends.locmem.LocMemCache'},
25 'django.core.cache.backends.locmem.LocMemCache'},
29 'ENGINE': 'django.db.backends.sqlite3',
33 'django.contrib.auth',
34 'django.contrib.contenttypes',
35 'django.contrib.sessions',
36 'django.contrib.sites',
43 MIDDLEWARE_CLASSES=[ # Django < 1.10
44 'django.middleware.csrf.CsrfViewMiddleware',
45 'ssify.middleware.SsiMiddleware',
46 'django.middleware.cache.UpdateCacheMiddleware',
47 'ssify.middleware.PrepareForCacheMiddleware',
48 'django.middleware.common.CommonMiddleware',
49 'django.contrib.sessions.middleware.SessionMiddleware',
50 'ssify.middleware.LocaleMiddleware',
51 'django.middleware.cache.FetchFromCacheMiddleware',
53 SMIDDLEWARE = [ # Django < 1.10
54 'django.middleware.csrf.CsrfViewMiddleware',
55 'ssify.middleware.SsiMiddleware',
56 'django.middleware.cache.UpdateCacheMiddleware',
57 'ssify.middleware.PrepareForCacheMiddleware',
58 'django.middleware.common.CommonMiddleware',
59 'django.contrib.sessions.middleware.SessionMiddleware',
60 'ssify.middleware.LocaleMiddleware',
61 'django.middleware.cache.FetchFromCacheMiddleware',
63 STATIC_URL='/static/',
64 ROOT_URLCONF='tests.urls',
66 TEMPLATE_CONTEXT_PROCESSORS=( # Django < 1.8
67 "django.core.context_processors.debug",
68 "django.core.context_processors.i18n",
69 "django.core.context_processors.tz",
70 "django.core.context_processors.request",
74 'BACKEND': 'django.template.backends.django.DjangoTemplates',
77 'context_processors': [
78 "django.template.context_processors.debug",
79 "django.template.context_processors.i18n",
80 "django.template.context_processors.tz",
81 "django.template.context_processors.request",
89 from django.test.runner import DiscoverRunner
92 from django.test.simple import DjangoTestSuiteRunner as DiscoverRunner
95 def runtests(*test_args, **kwargs):
96 """Actual test suite entry point."""
99 parent = dirname(abspath(__file__))
100 sys.path.insert(0, parent)
104 from django import setup
110 test_runner = DiscoverRunner(
111 verbosity=kwargs.get('verbosity', 1),
112 interactive=kwargs.get('interactive', False),
113 failfast=kwargs.get('failfast'))
114 failures = test_runner.run_tests(test_args)
117 if __name__ == '__main__':
118 parser = OptionParser()
119 parser.add_option('--failfast', action='store_true',
120 default=False, dest='failfast')
122 (options, args) = parser.parse_args()
124 runtests(failfast=options.failfast, *args)