Remove misleading Content-Length.
[django-ssify.git] / runtests.py
1 #!/usr/bin/env python
2 # -*- coding: utf-8
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.
5 #
6 """
7 Creates a simple Django configuration and runs tests for django-ssify.
8 """
9 from __future__ import unicode_literals
10 import sys
11 import os
12 from os.path import dirname, abspath
13 from optparse import OptionParser
14
15 from django.conf import settings
16
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'):
20     settings.configure(
21         CACHES={
22             'default': {'BACKEND':
23                         'django.core.cache.backends.locmem.LocMemCache'},
24             'ssify': {'BACKEND':
25                       'django.core.cache.backends.locmem.LocMemCache'},
26         },
27         DATABASES={
28             'default': {
29                 'ENGINE': 'django.db.backends.sqlite3',
30             }
31         },
32         INSTALLED_APPS=[
33             'django.contrib.auth',
34             'django.contrib.contenttypes',
35             'django.contrib.sessions',
36             'django.contrib.sites',
37
38             'ssify',
39             'tests',
40         ],
41         LANGUAGE_CODE='pl',
42         MEDIA_URL='/media/',
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',
52         ],
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',
62         ],
63         STATIC_URL='/static/',
64         ROOT_URLCONF='tests.urls',
65         SITE_ID=1,
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",
71         ),
72         TEMPLATES = [
73             {
74                 'BACKEND': 'django.template.backends.django.DjangoTemplates',
75                 'APP_DIRS': True,
76                 'OPTIONS': {
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",
82                     ],
83                 }
84             },
85         ]
86     )
87
88 try:
89     from django.test.runner import DiscoverRunner
90 except ImportError:
91     # Django < 1.6
92     from django.test.simple import DjangoTestSuiteRunner as DiscoverRunner
93
94
95 def runtests(*test_args, **kwargs):
96     """Actual test suite entry point."""
97     if not test_args:
98         test_args = ['tests']
99     parent = dirname(abspath(__file__))
100     sys.path.insert(0, parent)
101
102     # For Django 1.7+
103     try:
104         from django import setup
105     except ImportError:
106         pass
107     else:
108         setup()
109
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)
115     sys.exit(failures)
116
117 if __name__ == '__main__':
118     parser = OptionParser()
119     parser.add_option('--failfast', action='store_true',
120                       default=False, dest='failfast')
121
122     (options, args) = parser.parse_args()
123
124     runtests(failfast=options.failfast, *args)