aboutsummaryrefslogtreecommitdiffstats
path: root/debug_toolbar/tests/tests.py
diff options
context:
space:
mode:
authorDavid Cramer2011-05-26 02:27:53 -0700
committerDavid Cramer2011-05-26 02:27:53 -0700
commit748dd25a3768498bc1a599c4f70768b42ca68f00 (patch)
treea4009629d9e3773f5ac2349be75a0a3c98cfb496 /debug_toolbar/tests/tests.py
parent384d144fa68dd7468c05556137395612f8195eb0 (diff)
downloaddjango-debug-toolbar-748dd25a3768498bc1a599c4f70768b42ca68f00.tar.bz2
Add tests for show_toolbar on TEST, DEBUG, and INTERNAL_IP. Add test to ensure we're appending urlpatterns correctly.
Diffstat (limited to 'debug_toolbar/tests/tests.py')
-rw-r--r--debug_toolbar/tests/tests.py76
1 files changed, 76 insertions, 0 deletions
diff --git a/debug_toolbar/tests/tests.py b/debug_toolbar/tests/tests.py
index fe1904a..5f8bdfc 100644
--- a/debug_toolbar/tests/tests.py
+++ b/debug_toolbar/tests/tests.py
@@ -3,17 +3,44 @@ from debug_toolbar.panels.sql import SQLDebugPanel
from debug_toolbar.toolbar.loader import DebugToolbar
from debug_toolbar.utils.tracking import pre_dispatch, post_dispatch, callbacks
+from django.conf import settings
+from django.conf.urls.defaults import patterns
from django.contrib.auth.models import User
from django.test import TestCase
from dingus import Dingus
import thread
+
+class Settings(object):
+ """Allows you to define settings that are required for this function to work"""
+
+ NotDefined = object()
+
+ def __init__(self, **overrides):
+ self.overrides = overrides
+ self._orig = {}
+
+ def __enter__(self):
+ for k, v in self.overrides.iteritems():
+ self._orig[k] = getattr(settings, k, self.NotDefined)
+ setattr(settings, k, v)
+
+ def __exit__(self, exc_type, exc_value, traceback):
+ for k, v in self._orig.iteritems():
+ if v is self.NotDefined:
+ delattr(settings, k)
+ else:
+ setattr(settings, k, v)
+
class BaseTestCase(TestCase):
def setUp(self):
request = Dingus('request')
toolbar = DebugToolbar(request)
+
DebugToolbarMiddleware.debug_toolbars[thread.get_ident()] = toolbar
+
+ self.request = request
self.toolbar = toolbar
class DebugToolbarTestCase(BaseTestCase):
@@ -23,6 +50,55 @@ class DebugToolbarTestCase(BaseTestCase):
resp = self.client.get('/execute_sql/')
self.assertEquals(resp.status_code, 200)
+ def test_show_toolbar_DEBUG(self):
+ request = self.request
+
+ middleware = DebugToolbarMiddleware()
+
+ with Settings(DEBUG=True):
+ self.assertTrue(middleware._show_toolbar(request))
+
+ with Settings(DEBUG=False):
+ self.assertFalse(middleware._show_toolbar(request))
+
+ def test_show_toolbar_TEST(self):
+ request = self.request
+
+ middleware = DebugToolbarMiddleware()
+
+ with Settings(TEST=True):
+ self.assertTrue(middleware._show_toolbar(request))
+
+ with Settings(TEST=False):
+ self.assertFalse(middleware._show_toolbar(request))
+
+ def test_show_toolbar_INTERNAL_IPS(self):
+ request = self.request
+
+ request.META = {'REMOTE_ADDR': '127.0.0.1'}
+ middleware = DebugToolbarMiddleware()
+
+ with Settings(INTERNAL_IPS=['127.0.0.1']):
+ self.assertTrue(middleware._show_toolbar(request))
+
+ with Settings(INTERNAL_IPS=[]):
+ self.assertFalse(middleware._show_toolbar(request))
+
+ def test_request_urlconf_string(self):
+ request = self.request
+
+ request.urlconf = 'debug_toolbar.tests.urls'
+ request.META = {'REMOTE_ADDR': '127.0.0.1'}
+ middleware = DebugToolbarMiddleware()
+
+ with Settings(DEBUG=True):
+ middleware.process_request(request)
+
+ urls = getattr(__import__(request.urlconf), request.urlconf.rsplit('.', 1)[-1])
+
+ self.assertEquals(urls.urlpatterns[0]._callback_str, 'debug_toolbar.views.debug_media')
+ self.assertEquals(urls.urlpatterns[-1].urlconf_name.__name__, 'debug_toolbar.tests.urls')
+
class SQLPanelTestCase(BaseTestCase):
def test_recording(self):
panel = self.toolbar.get_panel(SQLDebugPanel)