Skip to content

Commit ece1c27

Browse files
committed
Assorted fixes for Django 1.9 compatibility.
1 parent b61af89 commit ece1c27

File tree

6 files changed

+38
-15
lines changed

6 files changed

+38
-15
lines changed

debug_toolbar/compat.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,11 @@
88
from django.conf import settings
99
from django.core.exceptions import ImproperlyConfigured
1010

11+
try:
12+
from django.template.base import linebreak_iter # NOQA
13+
except ImportError: # Django < 1.9
14+
from django.views.debug import linebreak_iter # NOQA
15+
1116
try:
1217
from django.template.engine import Engine
1318
except ImportError: # Django < 1.8

debug_toolbar/utils.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@
1313
from django.utils.encoding import force_text
1414
from django.utils.html import escape
1515
from django.utils.safestring import mark_safe
16-
from django.views.debug import linebreak_iter
16+
17+
from debug_toolbar.compat import linebreak_iter
1718

1819
from .settings import CONFIG
1920

tests/loaders.py

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,17 @@
1+
import django
12
from django.contrib.auth.models import User
23
from django.template.loaders.app_directories import Loader
34

45

56
class LoaderWithSQL(Loader):
6-
def load_template_source(self, template_name, template_dirs=None):
7-
# Force the template loader to run some SQL. Simulates a CMS.
8-
User.objects.all().count()
9-
return super(LoaderWithSQL, self).load_template_source(
10-
template_name, template_dirs=template_dirs)
7+
8+
if django.VERSION[:2] >= (1, 9):
9+
def get_template(self, *args, **kwargs):
10+
# Force the template loader to run some SQL. Simulates a CMS.
11+
User.objects.all().count()
12+
return super(LoaderWithSQL, self).get_template(*args, **kwargs)
13+
else:
14+
def load_template(self, *args, **kwargs):
15+
# Force the template loader to run some SQL. Simulates a CMS.
16+
User.objects.all().count()
17+
return super(LoaderWithSQL, self).load_template(*args, **kwargs)

tests/panels/test_redirects.py

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,27 +28,36 @@ def test_redirect(self):
2828
redirect['Location'] = 'http://somewhere/else/'
2929
response = self.panel.process_response(self.request, redirect)
3030
self.assertFalse(response is redirect)
31-
self.assertContains(response, '302 FOUND')
31+
try:
32+
self.assertContains(response, '302 Found')
33+
except AssertionError: # Django < 1.9
34+
self.assertContains(response, '302 FOUND')
3235
self.assertContains(response, 'http://somewhere/else/')
3336

3437
def test_redirect_with_broken_context_processor(self):
35-
context_processors = settings.TEMPLATE_CONTEXT_PROCESSORS + (
38+
context_processors = list(settings.TEMPLATE_CONTEXT_PROCESSORS) + [
3639
'tests.context_processors.broken',
37-
)
40+
]
3841

3942
with self.settings(TEMPLATE_CONTEXT_PROCESSORS=context_processors):
4043
redirect = HttpResponse(status=302)
4144
redirect['Location'] = 'http://somewhere/else/'
4245
response = self.panel.process_response(self.request, redirect)
4346
self.assertFalse(response is redirect)
44-
self.assertContains(response, '302 FOUND')
47+
try:
48+
self.assertContains(response, '302 Found')
49+
except AssertionError: # Django < 1.9
50+
self.assertContains(response, '302 FOUND')
4551
self.assertContains(response, 'http://somewhere/else/')
4652

4753
def test_unknown_status_code(self):
4854
redirect = HttpResponse(status=369)
4955
redirect['Location'] = 'http://somewhere/else/'
5056
response = self.panel.process_response(self.request, redirect)
51-
self.assertContains(response, '369 UNKNOWN STATUS CODE')
57+
try:
58+
self.assertContains(response, '369 Unknown Status Code')
59+
except AssertionError: # Django < 1.9
60+
self.assertContains(response, '369 UNKNOWN STATUS CODE')
5261

5362
def test_unknown_status_code_with_reason(self):
5463
redirect = HttpResponse(status=369, reason='Look Ma!')

tests/panels/test_sql.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -121,10 +121,9 @@ def test_regression_infinite_recursion(self):
121121

122122
render(self.request, "basic.html", {})
123123

124-
# ensure queries were logged
125-
# It's more than one because the SQL run in the loader is run every time
126-
# the template is rendered which is more than once.
127-
self.assertEqual(len(self.panel._queries), 3)
124+
# Two queries are logged because the loader runs SQL every time a
125+
# template is loaded and basic.html extends base.html.
126+
self.assertEqual(len(self.panel._queries), 2)
128127
query = self.panel._queries[0]
129128
self.assertEqual(query[0], 'default')
130129
self.assertTrue('sql' in query[1])

tests/settings.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@
1111

1212
INTERNAL_IPS = ['127.0.0.1']
1313

14+
LOGGING_CONFIG = None # avoids spurious output in tests
15+
1416

1517
# Application definition
1618

0 commit comments

Comments
 (0)