diff options
Diffstat (limited to 'debug_toolbar')
| -rw-r--r-- | debug_toolbar/tests/tests.py | 76 |
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) |
