diff options
| author | Aymeric Augustin | 2013-10-18 22:34:29 +0200 |
|---|---|---|
| committer | Aymeric Augustin | 2013-10-18 22:34:29 +0200 |
| commit | d112cc5ed14fa97eb187aa7f0b38318ea03d77dc (patch) | |
| tree | 9b2834cf02ce0062cb161bbb1379525569b31483 | |
| parent | d3d5b492543ed0fa42914152178df88b59496fe7 (diff) | |
| download | django-debug-toolbar-d112cc5ed14fa97eb187aa7f0b38318ea03d77dc.tar.bz2 | |
Make show_toolbar available for easier customization.
Thanks Ned Batchelder for the suggestion.
Fix #324.
| -rw-r--r-- | debug_toolbar/middleware.py | 24 | ||||
| -rw-r--r-- | tests/tests.py | 46 |
2 files changed, 29 insertions, 41 deletions
diff --git a/debug_toolbar/middleware.py b/debug_toolbar/middleware.py index 29da751..214d895 100644 --- a/debug_toolbar/middleware.py +++ b/debug_toolbar/middleware.py @@ -34,6 +34,19 @@ def replace_insensitive(string, target, replacement): return string +def show_toolbar(request): + """ + Default function to determine whether to show the toolbar on a given page. + """ + if getattr(settings, 'TEST', False): + return False + + if request.META.get('REMOTE_ADDR', None) not in settings.INTERNAL_IPS: + return False + + return bool(settings.DEBUG) + + class DebugToolbarMiddleware(object): """ Middleware to set up Debug Toolbar on incoming request and render toolbar @@ -49,7 +62,7 @@ class DebugToolbarMiddleware(object): self._urlconfs = {} # Set method to use to decide to show toolbar - self.show_toolbar = self._show_toolbar # default + self.show_toolbar = show_toolbar # The tag to attach the toolbar to self.tag = '</body>' @@ -64,15 +77,6 @@ class DebugToolbarMiddleware(object): if tag: self.tag = '</' + tag + '>' - def _show_toolbar(self, request): - if getattr(settings, 'TEST', False): - return False - - remote_addr = request.META.get('REMOTE_ADDR', None) - - # if not internal ip, and not DEBUG - return remote_addr in settings.INTERNAL_IPS and bool(settings.DEBUG) - def process_request(self, request): __traceback_hide__ = True if self.show_toolbar(request): diff --git a/tests/tests.py b/tests/tests.py index 7e1757f..2b26893 100644 --- a/tests/tests.py +++ b/tests/tests.py @@ -17,7 +17,7 @@ from django.template import Template, Context from django.utils import six from django.utils import unittest -from debug_toolbar.middleware import DebugToolbarMiddleware +from debug_toolbar.middleware import DebugToolbarMiddleware, show_toolbar from debug_toolbar.panels.logger import (LoggingPanel, MESSAGE_IF_STRING_REPRESENTATION_INVALID) from debug_toolbar.panels.sql import SQLDebugPanel @@ -45,46 +45,26 @@ class BaseTestCase(TestCase): self.toolbar.stats = {} + +@override_settings(DEBUG=True, INTERNAL_IPS=['127.0.0.1']) class DebugToolbarTestCase(BaseTestCase): urls = 'tests.urls' - def test_middleware(self): - with self.settings(INTERNAL_IPS=['127.0.0.1'], DEBUG=True): - resp = self.client.get('/execute_sql/') - self.assertEqual(resp.status_code, 200) + def test_show_toolbar(self): + self.assertTrue(show_toolbar(self.request)) def test_show_toolbar_DEBUG(self): - request = rf.get('/') - middleware = DebugToolbarMiddleware() - - with self.settings(INTERNAL_IPS=['127.0.0.1'], DEBUG=True): - self.assertTrue(middleware._show_toolbar(request)) - - with self.settings(INTERNAL_IPS=['127.0.0.1'], DEBUG=False): - self.assertFalse(middleware._show_toolbar(request)) + with self.settings(DEBUG=False): + self.assertFalse(show_toolbar(self.request)) def test_show_toolbar_TEST(self): - request = rf.get('/') - middleware = DebugToolbarMiddleware() - - with self.settings(INTERNAL_IPS=['127.0.0.1'], TEST=True, DEBUG=True): - self.assertFalse(middleware._show_toolbar(request)) - - with self.settings(INTERNAL_IPS=['127.0.0.1'], TEST=False, DEBUG=True): - self.assertTrue(middleware._show_toolbar(request)) + with self.settings(TEST=True): + self.assertFalse(show_toolbar(self.request)) def test_show_toolbar_INTERNAL_IPS(self): - request = rf.get('/') - - request.META = {'REMOTE_ADDR': '127.0.0.1'} - middleware = DebugToolbarMiddleware() - - with self.settings(INTERNAL_IPS=['127.0.0.1'], DEBUG=True): - self.assertTrue(middleware._show_toolbar(request)) - - with self.settings(INTERNAL_IPS=[], DEBUG=True): - self.assertFalse(middleware._show_toolbar(request)) + with self.settings(INTERNAL_IPS=[]): + self.assertFalse(show_toolbar(self.request)) def test_request_urlconf_string(self): request = rf.get('/') @@ -176,6 +156,10 @@ class DebugToolbarIntegrationTestCase(TestCase): urls = 'tests.urls' + def test_middleware(self): + response = self.client.get('/execute_sql/') + self.assertEqual(response.status_code, 200) + @override_settings(DEFAULT_CHARSET='iso-8859-1') def test_non_utf8_charset(self): response = self.client.get('/regular/ASCII/') |
