diff options
| -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/') | 
