diff options
| author | David Cramer | 2011-05-26 02:27:53 -0700 | 
|---|---|---|
| committer | David Cramer | 2011-05-26 02:27:53 -0700 | 
| commit | 748dd25a3768498bc1a599c4f70768b42ca68f00 (patch) | |
| tree | a4009629d9e3773f5ac2349be75a0a3c98cfb496 /debug_toolbar | |
| parent | 384d144fa68dd7468c05556137395612f8195eb0 (diff) | |
| download | django-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')
| -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)  | 
