Skip to content

Commit

Permalink
Add tests for show_toolbar on TEST, DEBUG, and INTERNAL_IP. Add test …
Browse files Browse the repository at this point in the history
…to ensure we're appending urlpatterns correctly.
  • Loading branch information
dcramer committed May 26, 2011
1 parent 384d144 commit 748dd25
Showing 1 changed file with 76 additions and 0 deletions.
76 changes: 76 additions & 0 deletions debug_toolbar/tests/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,44 @@
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):
Expand All @@ -23,6 +50,55 @@ def test_middleware(self):
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)
Expand Down

0 comments on commit 748dd25

Please sign in to comment.