aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAymeric Augustin2013-11-11 17:54:48 +0100
committerAymeric Augustin2013-11-11 19:33:52 +0100
commiteb244f71bfc9cdd5cb4341f98002e03de3414287 (patch)
tree2608f0c8edc48c6bc5e7db7c9bdb5322c4f534c8
parentede259fb087b9049c68065cded70fa48861807f7 (diff)
downloaddjango-debug-toolbar-eb244f71bfc9cdd5cb4341f98002e03de3414287.tar.bz2
Don't set up the toolbar when DEBUG = False.
-rw-r--r--debug_toolbar/models.py45
-rw-r--r--tests/settings.py16
-rw-r--r--tests/urls.py3
3 files changed, 46 insertions, 18 deletions
diff --git a/debug_toolbar/models.py b/debug_toolbar/models.py
index 772b52b..fc78874 100644
--- a/debug_toolbar/models.py
+++ b/debug_toolbar/models.py
@@ -20,6 +20,11 @@ def is_toolbar_middleware(middleware_path):
return issubclass(middleware_cls, DebugToolbarMiddleware)
+def is_toolbar_middleware_installed():
+ return any(is_toolbar_middleware(middleware)
+ for middleware in settings.MIDDLEWARE_CLASSES)
+
+
def prepend_to_setting(setting_name, value):
"""Insert value at the beginning of a list or tuple setting."""
values = getattr(settings, setting_name)
@@ -28,23 +33,33 @@ def prepend_to_setting(setting_name, value):
setattr(settings, setting_name, value + values)
-if not settings.INTERNAL_IPS:
- prepend_to_setting('INTERNAL_IPS', '127.0.0.1')
- prepend_to_setting('INTERNAL_IPS', '::1')
+def patch_internal_ips():
+ if not settings.INTERNAL_IPS:
+ prepend_to_setting('INTERNAL_IPS', '127.0.0.1')
+ prepend_to_setting('INTERNAL_IPS', '::1')
+
+def patch_middleware_classes():
+ if not is_toolbar_middleware_installed():
+ prepend_to_setting('MIDDLEWARE_CLASSES',
+ 'debug_toolbar.middleware.DebugToolbarMiddleware')
+
+
+def patch_root_urlconf():
+ try:
+ reverse('djdt:render_panel')
+ except NoReverseMatch:
+ urlconf_module = import_module(settings.ROOT_URLCONF)
+ urlconf_module.urlpatterns += patterns('', # noqa
+ url(r'^__debug__/', include('debug_toolbar.urls', namespace='djdt', app_name='djdt')),
+ )
-if not any(is_toolbar_middleware(middleware)
- for middleware in settings.MIDDLEWARE_CLASSES):
- prepend_to_setting('MIDDLEWARE_CLASSES',
- 'debug_toolbar.middleware.DebugToolbarMiddleware')
-try:
- reverse('djdt:render_panel')
-except NoReverseMatch:
- urlconf_module = import_module(settings.ROOT_URLCONF)
- urlconf_module.urlpatterns += patterns('',
- url(r'^__debug__/', include('debug_toolbar.urls', namespace='djdt', app_name='djdt')),
- )
+if settings.DEBUG:
+ patch_internal_ips()
+ patch_middleware_classes()
+ patch_root_urlconf()
-load_panel_classes()
+if is_toolbar_middleware_installed():
+ load_panel_classes()
diff --git a/tests/settings.py b/tests/settings.py
index 33058f2..a41b5a7 100644
--- a/tests/settings.py
+++ b/tests/settings.py
@@ -8,10 +8,12 @@ BASE_DIR = os.path.dirname(os.path.dirname(__file__))
SECRET_KEY = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'
+INTERNAL_IPS = ['127.0.0.1']
+
# Application definition
-INSTALLED_APPS = (
+INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
@@ -20,7 +22,17 @@ INSTALLED_APPS = (
'django.contrib.staticfiles',
'debug_toolbar',
'tests',
-)
+]
+
+MIDDLEWARE_CLASSES = [
+ 'debug_toolbar.middleware.DebugToolbarMiddleware',
+ 'django.contrib.sessions.middleware.SessionMiddleware',
+ 'django.middleware.common.CommonMiddleware',
+ 'django.middleware.csrf.CsrfViewMiddleware',
+ 'django.contrib.auth.middleware.AuthenticationMiddleware',
+ 'django.contrib.messages.middleware.MessageMiddleware',
+ 'django.middleware.clickjacking.XFrameOptionsMiddleware',
+]
ROOT_URLCONF = 'tests.urls'
diff --git a/tests/urls.py b/tests/urls.py
index 977084b..d4417a1 100644
--- a/tests/urls.py
+++ b/tests/urls.py
@@ -2,7 +2,7 @@
from __future__ import unicode_literals
-from django.conf.urls import patterns, url
+from django.conf.urls import include, patterns, url
from django.contrib import admin
from .models import NonAsciiRepr
@@ -18,4 +18,5 @@ urlpatterns = patterns('tests.views', # noqa
url(r'^non_ascii_request/$', 'regular_view', {'title': NonAsciiRepr()}),
url(r'^new_user/$', 'new_user'),
url(r'^execute_sql/$', 'execute_sql'),
+ url(r'^__debug__/', include('debug_toolbar.urls', namespace='djdt', app_name='djdt')),
)