diff options
54 files changed, 226 insertions, 176 deletions
diff --git a/debug_toolbar/__init__.py b/debug_toolbar/__init__.py index 23bfa55..12a7fc8 100644 --- a/debug_toolbar/__init__.py +++ b/debug_toolbar/__init__.py @@ -1,4 +1,4 @@ -from __future__ import unicode_literals +from __future__ import absolute_import, unicode_literals __all__ = ['VERSION'] diff --git a/debug_toolbar/management/commands/debugsqlshell.py b/debug_toolbar/management/commands/debugsqlshell.py index a11af98..2d4bfa6 100644 --- a/debug_toolbar/management/commands/debugsqlshell.py +++ b/debug_toolbar/management/commands/debugsqlshell.py @@ -1,4 +1,4 @@ -from __future__ import print_function, unicode_literals +from __future__ import absolute_import, print_function, unicode_literals from time import time diff --git a/debug_toolbar/middleware.py b/debug_toolbar/middleware.py index bda784d..3c9edf0 100644 --- a/debug_toolbar/middleware.py +++ b/debug_toolbar/middleware.py @@ -2,7 +2,7 @@ Debug Toolbar middleware """ -from __future__ import unicode_literals +from __future__ import absolute_import, unicode_literals import threading diff --git a/debug_toolbar/models.py b/debug_toolbar/models.py index 2152627..eba7028 100644 --- a/debug_toolbar/models.py +++ b/debug_toolbar/models.py @@ -1,4 +1,4 @@ -from __future__ import unicode_literals +from __future__ import absolute_import, unicode_literals from django.conf import settings from django.conf.urls import include, patterns, url diff --git a/debug_toolbar/panels/__init__.py b/debug_toolbar/panels/__init__.py index 37d7eb7..1ab500b 100644 --- a/debug_toolbar/panels/__init__.py +++ b/debug_toolbar/panels/__init__.py @@ -1,12 +1,14 @@ -from __future__ import unicode_literals +from __future__ import absolute_import, unicode_literals + +import warnings from django.template.defaultfilters import slugify from django.template.loader import render_to_string -class DebugPanel(object): +class Panel(object): """ - Base class for debug panels. + Base class for panels. """ # name = 'Base' # template = 'debug_toolbar/panels/base.html' @@ -89,3 +91,11 @@ class DebugPanel(object): def process_response(self, request, response): pass + + +# Backward-compatibility for 1.0, remove in 2.0. +class DebugPanel(Panel): + + def __init__(self, *args, **kwargs): + warnings.warn("DebugPanel was renamed to Panel.", DeprecationWarning) + super(DebugPanel, self).__init__(*args, **kwargs) diff --git a/debug_toolbar/panels/cache.py b/debug_toolbar/panels/cache.py index 42e512f..c2808a1 100644 --- a/debug_toolbar/panels/cache.py +++ b/debug_toolbar/panels/cache.py @@ -1,4 +1,4 @@ -from __future__ import unicode_literals +from __future__ import absolute_import, unicode_literals import inspect import sys @@ -13,7 +13,7 @@ from django.template import Node from django.utils.datastructures import SortedDict from django.utils.translation import ugettext_lazy as _, ungettext -from debug_toolbar.panels import DebugPanel +from debug_toolbar.panels import Panel from debug_toolbar.utils import (tidy_stacktrace, render_stacktrace, get_template_info, get_stack) from debug_toolbar import settings as dt_settings @@ -127,7 +127,7 @@ def get_cache(*args, **kwargs): return CacheStatTracker(original_get_cache(*args, **kwargs)) -class CacheDebugPanel(DebugPanel): +class CachePanel(Panel): """ Panel that displays the cache statistics. """ @@ -136,7 +136,7 @@ class CacheDebugPanel(DebugPanel): has_content = True def __init__(self, *args, **kwargs): - super(CacheDebugPanel, self).__init__(*args, **kwargs) + super(CachePanel, self).__init__(*args, **kwargs) self.total_time = 0 self.hits = 0 self.misses = 0 diff --git a/debug_toolbar/panels/headers.py b/debug_toolbar/panels/headers.py index 2a41081..3ee499d 100644 --- a/debug_toolbar/panels/headers.py +++ b/debug_toolbar/panels/headers.py @@ -1,18 +1,18 @@ -from __future__ import unicode_literals +from __future__ import absolute_import, unicode_literals try: from collections import OrderedDict except ImportError: from django.utils.datastructures import SortedDict as OrderedDict from django.utils.translation import ugettext_lazy as _ -from debug_toolbar.panels import DebugPanel +from debug_toolbar.panels import Panel -class HeaderDebugPanel(DebugPanel): +class HeadersPanel(Panel): """ A panel to display HTTP headers. """ - name = 'Header' + name = 'Headers' template = 'debug_toolbar/panels/headers.html' has_content = True # List of environment variables we want to display @@ -46,7 +46,7 @@ class HeaderDebugPanel(DebugPanel): self.request_headers = OrderedDict( (unmangle(k), v) for (k, v) in wsgi_env if k.startswith('HTTP_')) if 'Cookie' in self.request_headers: - self.request_headers['Cookie'] = '=> see Request Vars panel' + self.request_headers['Cookie'] = '=> see Request panel' self.environ = OrderedDict( (k, v) for (k, v) in wsgi_env if k in self.environ_filter) self.record_stats({ diff --git a/debug_toolbar/panels/logger.py b/debug_toolbar/panels/logging.py index 45c995a..a37e000 100644 --- a/debug_toolbar/panels/logger.py +++ b/debug_toolbar/panels/logging.py @@ -1,4 +1,4 @@ -from __future__ import unicode_literals +from __future__ import absolute_import, unicode_literals import datetime import logging @@ -7,7 +7,7 @@ try: except ImportError: threading = None from django.utils.translation import ungettext, ugettext_lazy as _ -from debug_toolbar.panels import DebugPanel +from debug_toolbar.panels import Panel MESSAGE_IF_STRING_REPRESENTATION_INVALID = '[Could not get log message]' @@ -104,9 +104,9 @@ if logbook_supported: logbook_handler.push_application() # register with logbook -class LoggingPanel(DebugPanel): +class LoggingPanel(Panel): name = 'Logging' - template = 'debug_toolbar/panels/logger.html' + template = 'debug_toolbar/panels/logging.html' has_content = True def __init__(self, *args, **kwargs): diff --git a/debug_toolbar/panels/profiling.py b/debug_toolbar/panels/profiling.py index 6192ef9..9443e34 100644 --- a/debug_toolbar/panels/profiling.py +++ b/debug_toolbar/panels/profiling.py @@ -1,9 +1,9 @@ -from __future__ import division, unicode_literals +from __future__ import absolute_import, division, unicode_literals from django.utils.translation import ugettext_lazy as _ from django.utils.safestring import mark_safe from django.utils.six.moves import cStringIO -from debug_toolbar.panels import DebugPanel +from debug_toolbar.panels import Panel try: from line_profiler import LineProfiler, show_func @@ -140,7 +140,7 @@ class FunctionCall(object): return self._line_stats_text -class ProfilingDebugPanel(DebugPanel): +class ProfilingPanel(Panel): """ Panel that displays profiling information. """ diff --git a/debug_toolbar/panels/redirects.py b/debug_toolbar/panels/redirects.py index 605dde3..9deeb69 100644 --- a/debug_toolbar/panels/redirects.py +++ b/debug_toolbar/panels/redirects.py @@ -1,13 +1,13 @@ -from __future__ import unicode_literals +from __future__ import absolute_import, unicode_literals from django.core.handlers.wsgi import STATUS_CODE_TEXT from django.shortcuts import render from django.utils.translation import ugettext as _ -from debug_toolbar.panels import DebugPanel +from debug_toolbar.panels import Panel -class InterceptRedirectsPanel(DebugPanel): +class RedirectsPanel(Panel): """ Panel that intercepts redirects and displays a page with debug info. """ diff --git a/debug_toolbar/panels/request_vars.py b/debug_toolbar/panels/request.py index b5e7070..934946a 100644 --- a/debug_toolbar/panels/request_vars.py +++ b/debug_toolbar/panels/request.py @@ -1,27 +1,27 @@ -from __future__ import unicode_literals +from __future__ import absolute_import, unicode_literals from django.core.urlresolvers import resolve from django.http import Http404 from django.utils.encoding import force_text from django.utils.translation import ugettext_lazy as _ -from debug_toolbar.panels import DebugPanel +from debug_toolbar.panels import Panel from debug_toolbar.utils import get_name_from_obj -class RequestVarsDebugPanel(DebugPanel): +class RequestPanel(Panel): """ A panel to display request variables (POST/GET, session, cookies). """ - name = 'RequestVars' - template = 'debug_toolbar/panels/request_vars.html' + name = 'Request' + template = 'debug_toolbar/panels/request.html' has_content = True def nav_title(self): - return _('Request Vars') + return _('Request') def title(self): - return _('Request Vars') + return _('Request') def process_response(self, request, response): self.record_stats({ diff --git a/debug_toolbar/panels/settings_vars.py b/debug_toolbar/panels/settings.py index 8692394..b7af57d 100644 --- a/debug_toolbar/panels/settings_vars.py +++ b/debug_toolbar/panels/settings.py @@ -1,19 +1,19 @@ -from __future__ import unicode_literals +from __future__ import absolute_import, unicode_literals from django.conf import settings from django.views.debug import get_safe_settings from django.utils.translation import ugettext_lazy as _ from django.utils.datastructures import SortedDict -from debug_toolbar.panels import DebugPanel +from debug_toolbar.panels import Panel -class SettingsVarsDebugPanel(DebugPanel): +class SettingsPanel(Panel): """ A panel to display all variables in django.conf.settings """ - name = 'SettingsVars' - template = 'debug_toolbar/panels/settings_vars.html' + name = 'Settings' + template = 'debug_toolbar/panels/settings.html' has_content = True def nav_title(self): diff --git a/debug_toolbar/panels/signals.py b/debug_toolbar/panels/signals.py index e9f4f00..74d1faa 100644 --- a/debug_toolbar/panels/signals.py +++ b/debug_toolbar/panels/signals.py @@ -1,4 +1,4 @@ -from __future__ import unicode_literals +from __future__ import absolute_import, unicode_literals from django.core.signals import ( request_started, request_finished, got_request_exception) @@ -10,10 +10,10 @@ from django.dispatch.dispatcher import WEAKREF_TYPES from django.utils.translation import ugettext_lazy as _, ungettext from django.utils.importlib import import_module -from debug_toolbar.panels import DebugPanel +from debug_toolbar.panels import Panel -class SignalDebugPanel(DebugPanel): +class SignalsPanel(Panel): name = "Signals" template = 'debug_toolbar/panels/signals.html' has_content = True diff --git a/debug_toolbar/panels/sql/__init__.py b/debug_toolbar/panels/sql/__init__.py index 90e05cb..88a916e 100644 --- a/debug_toolbar/panels/sql/__init__.py +++ b/debug_toolbar/panels/sql/__init__.py @@ -1 +1 @@ -from debug_toolbar.panels.sql.panel import SQLDebugPanel # noqa +from debug_toolbar.panels.sql.panel import SQLPanel # noqa diff --git a/debug_toolbar/panels/sql/forms.py b/debug_toolbar/panels/sql/forms.py index c18be0c..3fdbc25 100644 --- a/debug_toolbar/panels/sql/forms.py +++ b/debug_toolbar/panels/sql/forms.py @@ -1,4 +1,4 @@ -from __future__ import unicode_literals +from __future__ import absolute_import, unicode_literals import json import hashlib diff --git a/debug_toolbar/panels/sql/panel.py b/debug_toolbar/panels/sql/panel.py index 84ac992..3bfbe60 100644 --- a/debug_toolbar/panels/sql/panel.py +++ b/debug_toolbar/panels/sql/panel.py @@ -1,4 +1,4 @@ -from __future__ import unicode_literals +from __future__ import absolute_import, unicode_literals import uuid from copy import copy @@ -7,7 +7,7 @@ from django.conf.urls import patterns, url from django.db import connections from django.utils.translation import ugettext_lazy as _, ungettext_lazy as __ -from debug_toolbar.panels import DebugPanel +from debug_toolbar.panels import Panel from debug_toolbar.panels.sql.forms import SQLSelectForm from debug_toolbar.utils import render_stacktrace from debug_toolbar.panels.sql.utils import reformat_sql @@ -44,7 +44,7 @@ def get_transaction_status_display(engine, level): return choices.get(level) -class SQLDebugPanel(DebugPanel): +class SQLPanel(Panel): """ Panel that displays information about the SQL queries run while processing the request. @@ -54,7 +54,7 @@ class SQLDebugPanel(DebugPanel): has_content = True def __init__(self, *args, **kwargs): - super(SQLDebugPanel, self).__init__(*args, **kwargs) + super(SQLPanel, self).__init__(*args, **kwargs) self._offset = dict((k, len(connections[k].queries)) for k in connections) self._sql_time = 0 self._num_queries = 0 diff --git a/debug_toolbar/panels/sql/tracking.py b/debug_toolbar/panels/sql/tracking.py index 989ce3d..d412872 100644 --- a/debug_toolbar/panels/sql/tracking.py +++ b/debug_toolbar/panels/sql/tracking.py @@ -1,4 +1,4 @@ -from __future__ import unicode_literals +from __future__ import absolute_import, unicode_literals import sys diff --git a/debug_toolbar/panels/sql/utils.py b/debug_toolbar/panels/sql/utils.py index 00728a3..3943168 100644 --- a/debug_toolbar/panels/sql/utils.py +++ b/debug_toolbar/panels/sql/utils.py @@ -1,4 +1,4 @@ -from __future__ import unicode_literals +from __future__ import absolute_import, unicode_literals import re diff --git a/debug_toolbar/panels/sql/views.py b/debug_toolbar/panels/sql/views.py index 346cf6e..05ad74f 100644 --- a/debug_toolbar/panels/sql/views.py +++ b/debug_toolbar/panels/sql/views.py @@ -1,4 +1,4 @@ -from __future__ import unicode_literals +from __future__ import absolute_import, unicode_literals from django.http import HttpResponseBadRequest from django.shortcuts import render diff --git a/debug_toolbar/panels/template/__init__.py b/debug_toolbar/panels/template/__init__.py deleted file mode 100644 index d2f595d..0000000 --- a/debug_toolbar/panels/template/__init__.py +++ /dev/null @@ -1 +0,0 @@ -from debug_toolbar.panels.template.panel import TemplateDebugPanel # noqa diff --git a/debug_toolbar/panels/templates/__init__.py b/debug_toolbar/panels/templates/__init__.py new file mode 100644 index 0000000..96908e2 --- /dev/null +++ b/debug_toolbar/panels/templates/__init__.py @@ -0,0 +1 @@ +from debug_toolbar.panels.templates.panel import TemplatesPanel # noqa diff --git a/debug_toolbar/panels/template/panel.py b/debug_toolbar/panels/templates/panel.py index b877a53..c745b83 100644 --- a/debug_toolbar/panels/template/panel.py +++ b/debug_toolbar/panels/templates/panel.py @@ -1,4 +1,4 @@ -from __future__ import unicode_literals +from __future__ import absolute_import, unicode_literals from os.path import normpath from pprint import pformat @@ -14,7 +14,7 @@ from django.utils.encoding import force_text from django.utils import six from django.utils.translation import ugettext_lazy as _ -from debug_toolbar.panels import DebugPanel +from debug_toolbar.panels import Panel from debug_toolbar.panels.sql.tracking import recording, SQLQueryTriggered # Code taken and adapted from Simon Willison and Django Snippets: @@ -44,16 +44,16 @@ if django.VERSION[:2] < (1, 7): Template.__init__ = new_template_init -class TemplateDebugPanel(DebugPanel): +class TemplatesPanel(Panel): """ A panel that lists all templates used during processing of a response. """ - name = 'Template' + name = 'Templates' template = 'debug_toolbar/panels/templates.html' has_content = True def __init__(self, *args, **kwargs): - super(TemplateDebugPanel, self).__init__(*args, **kwargs) + super(TemplatesPanel, self).__init__(*args, **kwargs) self.templates = [] template_rendered.connect(self._store_template_info) @@ -75,7 +75,7 @@ class TemplateDebugPanel(DebugPanel): for key, value in context_layer.items(): # Replace any request elements - they have a large # unicode representation and the request data is - # already made available from the Request Vars panel. + # already made available from the Request panel. if isinstance(value, http.HttpRequest): temp_layer[key] = '<<request>>' # Replace the debugging sql_queries element. The SQL @@ -115,7 +115,7 @@ class TemplateDebugPanel(DebugPanel): @classmethod def get_urls(cls): - return patterns('debug_toolbar.panels.template.views', # noqa + return patterns('debug_toolbar.panels.templates.views', # noqa url(r'^template_source/$', 'template_source', name='template_source'), ) diff --git a/debug_toolbar/panels/template/views.py b/debug_toolbar/panels/templates/views.py index 30bd167..79479d9 100644 --- a/debug_toolbar/panels/template/views.py +++ b/debug_toolbar/panels/templates/views.py @@ -1,4 +1,4 @@ -from __future__ import unicode_literals +from __future__ import absolute_import, unicode_literals from django.http import HttpResponseBadRequest from django.conf import settings diff --git a/debug_toolbar/panels/timer.py b/debug_toolbar/panels/timer.py index 9a0fef3..900b624 100644 --- a/debug_toolbar/panels/timer.py +++ b/debug_toolbar/panels/timer.py @@ -1,4 +1,4 @@ -from __future__ import unicode_literals +from __future__ import absolute_import, unicode_literals try: import resource @@ -7,10 +7,10 @@ except ImportError: import time from django.template.loader import render_to_string from django.utils.translation import ugettext as _ -from debug_toolbar.panels import DebugPanel +from debug_toolbar.panels import Panel -class TimerDebugPanel(DebugPanel): +class TimerPanel(Panel): """ Panel that displays the time a response took in milliseconds. """ @@ -59,7 +59,7 @@ class TimerDebugPanel(DebugPanel): self.record_stats(stats) def nav_title(self): - return _('Time') + return _('Timer') def nav_subtitle(self): stats = self.get_stats() diff --git a/debug_toolbar/panels/version.py b/debug_toolbar/panels/versions.py index 87823f3..6028115 100644 --- a/debug_toolbar/panels/version.py +++ b/debug_toolbar/panels/versions.py @@ -1,4 +1,4 @@ -from __future__ import unicode_literals +from __future__ import absolute_import, unicode_literals import sys @@ -8,14 +8,14 @@ from django.utils.translation import ugettext_lazy as _ from django.utils.datastructures import SortedDict from django.utils.importlib import import_module -from debug_toolbar.panels import DebugPanel +from debug_toolbar.panels import Panel -class VersionDebugPanel(DebugPanel): +class VersionsPanel(Panel): """ - Panel that displays the Django version. + Shows versions of Python, Django, and installed apps if possible. """ - name = 'Version' + name = 'Versions' template = 'debug_toolbar/panels/versions.html' has_content = True diff --git a/debug_toolbar/settings.py b/debug_toolbar/settings.py index c86688a..7e23122 100644 --- a/debug_toolbar/settings.py +++ b/debug_toolbar/settings.py @@ -1,4 +1,6 @@ -from __future__ import unicode_literals +from __future__ import absolute_import, unicode_literals + +import warnings from django.conf import settings from django.utils import six @@ -38,19 +40,57 @@ CONFIG.update(CONFIG_DEFAULTS) CONFIG.update(getattr(settings, 'DEBUG_TOOLBAR_CONFIG', {})) -PANELS_DEFAULTS = ( - 'debug_toolbar.panels.version.VersionDebugPanel', - 'debug_toolbar.panels.timer.TimerDebugPanel', - 'debug_toolbar.panels.settings_vars.SettingsVarsDebugPanel', - 'debug_toolbar.panels.headers.HeaderDebugPanel', - 'debug_toolbar.panels.request_vars.RequestVarsDebugPanel', - 'debug_toolbar.panels.sql.SQLDebugPanel', - 'debug_toolbar.panels.template.TemplateDebugPanel', - 'debug_toolbar.panels.cache.CacheDebugPanel', - 'debug_toolbar.panels.signals.SignalDebugPanel', - 'debug_toolbar.panels.logger.LoggingPanel', - 'debug_toolbar.panels.redirects.InterceptRedirectsPanel', -) - +PANELS_DEFAULTS = [ + 'debug_toolbar.panels.versions.VersionsPanel', + 'debug_toolbar.panels.timer.TimerPanel', + 'debug_toolbar.panels.settings.SettingsPanel', + 'debug_toolbar.panels.headers.HeadersPanel', + 'debug_toolbar.panels.request.RequestPanel', + 'debug_toolbar.panels.sql.SQLPanel', + 'debug_toolbar.panels.templates.TemplatesPanel', + 'debug_toolbar.panels.cache.CachePanel', + 'debug_toolbar.panels.signals.SignalsPanel', + 'debug_toolbar.panels.logging.LoggingPanel', + 'debug_toolbar.panels.redirects.RedirectsPanel', + 'debug_toolbar.panels.profiling.ProfilingPanel', +] -PANELS = getattr(settings, 'DEBUG_TOOLBAR_PANELS', PANELS_DEFAULTS) +try: + PANELS = list(settings.DEBUG_TOOLBAR_PANELS) +except AttributeError: + PANELS = PANELS_DEFAULTS +else: + # Backward-compatibility for 1.0, remove in 2.0. + _RENAMED_PANELS = { + 'debug_toolbar.panels.version.VersionDebugPanel': + 'debug_toolbar.panels.versions.VersionsPanel', + 'debug_toolbar.panels.timer.TimerDebugPanel': + 'debug_toolbar.panels.timer.TimerPanel', + 'debug_toolbar.panels.settings_vars.SettingsDebugPanel': + 'debug_toolbar.panels.settings.SettingsPanel', + 'debug_toolbar.panels.headers.HeaderDebugPanel': + 'debug_toolbar.panels.headers.HeadersPanel', + 'debug_toolbar.panels.request_vars.RequestVarsDebugPanel': + 'debug_toolbar.panels.request.RequestPanel', + 'debug_toolbar.panels.sql.SQLDebugPanel': + 'debug_toolbar.panels.sql.SQLPanel', + 'debug_toolbar.panels.template.TemplateDebugPanel': + 'debug_toolbar.panels.templates.TemplatesPanel', + 'debug_toolbar.panels.cache.CacheDebugPanel': + 'debug_toolbar.panels.cache.CachePanel', + 'debug_toolbar.panels.signals.SignalDebugPanel': + 'debug_toolbar.panels.signals.SignalsPanel', + 'debug_toolbar.panels.logger.LoggingDebugPanel': + 'debug_toolbar.panels.logging.LoggingPanel', + 'debug_toolbar.panels.redirects.InterceptRedirectsDebugPanel': + 'debug_toolbar.panels.redirects.RedirectsPanel', + 'debug_toolbar.panels.profiling.ProfilingDebugPanel': + 'debug_toolbar.panels.profiling.ProfilingPanel', + } + for index, old_panel in enumerate(PANELS): + new_panel = _RENAMED_PANELS.get(old_panel) + if new_panel is not None: + warnings.warn( + "%r was renamed to %r. Update your DEBUG_TOOLBAR_PANELS " + "setting." % (old_panel, new_panel), DeprecationWarning) + PANELS[index] = new_panel diff --git a/debug_toolbar/templates/debug_toolbar/panels/logger.html b/debug_toolbar/templates/debug_toolbar/panels/logging.html index 3908f4f..3908f4f 100644 --- a/debug_toolbar/templates/debug_toolbar/panels/logger.html +++ b/debug_toolbar/templates/debug_toolbar/panels/logging.html diff --git a/debug_toolbar/templates/debug_toolbar/panels/request_vars.html b/debug_toolbar/templates/debug_toolbar/panels/request.html index a8277a4..a8277a4 100644 --- a/debug_toolbar/templates/debug_toolbar/panels/request_vars.html +++ b/debug_toolbar/templates/debug_toolbar/panels/request.html diff --git a/debug_toolbar/templates/debug_toolbar/panels/settings_vars.html b/debug_toolbar/templates/debug_toolbar/panels/settings.html index f6b5afe..f6b5afe 100644 --- a/debug_toolbar/templates/debug_toolbar/panels/settings_vars.html +++ b/debug_toolbar/templates/debug_toolbar/panels/settings.html diff --git a/debug_toolbar/templates/debug_toolbar/panels/sql_explain.html b/debug_toolbar/templates/debug_toolbar/panels/sql_explain.html index 0d47ada..6bc2f8d 100644 --- a/debug_toolbar/templates/debug_toolbar/panels/sql_explain.html +++ b/debug_toolbar/templates/debug_toolbar/panels/sql_explain.html @@ -1,9 +1,9 @@ {% load i18n %} -<div class="djDebugPanelTitle"> +<div class="djPanelTitle"> <a class="djDebugClose djDebugBack" href="">{% trans "Back" %}</a> <h3>{% trans "SQL Explained" %}</h3> </div> -<div class="djDebugPanelContent"> +<div class="djPanelContent"> <div class="scroll"> <dl> <dt>{% trans "Executed SQL" %}</dt> diff --git a/debug_toolbar/templates/debug_toolbar/panels/sql_profile.html b/debug_toolbar/templates/debug_toolbar/panels/sql_profile.html index c0d90b4..e154de5 100644 --- a/debug_toolbar/templates/debug_toolbar/panels/sql_profile.html +++ b/debug_toolbar/templates/debug_toolbar/panels/sql_profile.html @@ -1,9 +1,9 @@ {% load i18n %} -<div class="djDebugPanelTitle"> +<div class="djPanelTitle"> <a class="djDebugClose djDebugBack" href="">{% trans "Back" %}</a> <h3>{% trans "SQL Profiled" %}</h3> </div> -<div class="djDebugPanelContent"> +<div class="djPanelContent"> <div class="scroll"> {% if result %} <dl> diff --git a/debug_toolbar/templates/debug_toolbar/panels/sql_select.html b/debug_toolbar/templates/debug_toolbar/panels/sql_select.html index 7a57c75..6263364 100644 --- a/debug_toolbar/templates/debug_toolbar/panels/sql_select.html +++ b/debug_toolbar/templates/debug_toolbar/panels/sql_select.html @@ -1,9 +1,9 @@ {% load i18n %} -<div class="djDebugPanelTitle"> +<div class="djPanelTitle"> <a class="djDebugClose djDebugBack" href="">{% trans "Back" %}</a> <h3>{% trans "SQL Selected" %}</h3> </div> -<div class="djDebugPanelContent"> +<div class="djPanelContent"> <div class="scroll"> <dl> <dt>{% trans "Executed SQL" %}</dt> diff --git a/debug_toolbar/templates/debug_toolbar/panels/template_source.html b/debug_toolbar/templates/debug_toolbar/panels/template_source.html index 7dedde3..829842c 100644 --- a/debug_toolbar/templates/debug_toolbar/panels/template_source.html +++ b/debug_toolbar/templates/debug_toolbar/panels/template_source.html @@ -1,9 +1,9 @@ {% load i18n %} -<div class="djDebugPanelTitle"> +<div class="djPanelTitle"> <a class="djDebugClose djDebugBack" href="">{% trans "Back" %}</a> <h3>{% trans 'Template Source' %}: <code>{{ template_name }}</code></h3> </div> -<div class="djDebugPanelContent"> +<div class="djPanelContent"> <div class="scroll"> {% if not source.pygmentized %} <code>{{ source }}</code> diff --git a/debug_toolbar/toolbar.py b/debug_toolbar/toolbar.py index 3d24891..ca6d1b4 100644 --- a/debug_toolbar/toolbar.py +++ b/debug_toolbar/toolbar.py @@ -2,7 +2,7 @@ The main DebugToolbar class that loads and renders the Toolbar. """ -from __future__ import unicode_literals +from __future__ import absolute_import, unicode_literals import uuid diff --git a/debug_toolbar/utils.py b/debug_toolbar/utils.py index d7197b6..811f1b2 100644 --- a/debug_toolbar/utils.py +++ b/debug_toolbar/utils.py @@ -1,4 +1,4 @@ -from __future__ import unicode_literals +from __future__ import absolute_import, unicode_literals import inspect import os.path diff --git a/debug_toolbar/views.py b/debug_toolbar/views.py index eb67e8b..109c87a 100644 --- a/debug_toolbar/views.py +++ b/debug_toolbar/views.py @@ -1,4 +1,4 @@ -from __future__ import unicode_literals +from __future__ import absolute_import, unicode_literals from django.http import HttpResponse from django.utils.html import escape diff --git a/docs/configuration.rst b/docs/configuration.rst index eefa527..7849d2e 100644 --- a/docs/configuration.rst +++ b/docs/configuration.rst @@ -11,19 +11,19 @@ This setting specifies the full Python path to each panel that you want included in the toolbar. It works like Django's ``MIDDLEWARE_CLASSES`` setting. The default value is:: - DEBUG_TOOLBAR_PANELS = ( - 'debug_toolbar.panels.version.VersionDebugPanel', - 'debug_toolbar.panels.timer.TimerDebugPanel', - 'debug_toolbar.panels.settings_vars.SettingsVarsDebugPanel', - 'debug_toolbar.panels.headers.HeaderDebugPanel', - 'debug_toolbar.panels.request_vars.RequestVarsDebugPanel', - 'debug_toolbar.panels.sql.SQLDebugPanel', - 'debug_toolbar.panels.template.TemplateDebugPanel', - 'debug_toolbar.panels.cache.CacheDebugPanel', - 'debug_toolbar.panels.signals.SignalDebugPanel', - 'debug_toolbar.panels.logger.LoggingPanel', - 'debug_toolbar.panels.redirects.InterceptRedirectsPanel', - ) + DEBUG_TOOLBAR_PANELS = [ + 'debug_toolbar.panels.versions.VersionsPanel', + 'debug_toolbar.panels.timer.TimerPanel', + 'debug_toolbar.panels.settings.SettingsPanel', + 'debug_toolbar.panels.headers.HeadersPanel', + 'debug_toolbar.panels.request.RequestPanel', + 'debug_toolbar.panels.sql.SQLPanel', + 'debug_toolbar.panels.template.TemplatesPanel', + 'debug_toolbar.panels.cache.CachePanel', + 'debug_toolbar.panels.signals.SignalsPanel', + 'debug_toolbar.panels.logging.LoggingPanel', + 'debug_toolbar.panels.redirects.RedirectsPanel', + ] This setting allows you to: diff --git a/docs/panels.rst b/docs/panels.rst index 5ea4e44..39ddf7f 100644 --- a/docs/panels.rst +++ b/docs/panels.rst @@ -12,28 +12,28 @@ The following panels are enabled by default. Version ~~~~~~~ -Path: ``debug_toolbar.panels.version.VersionDebugPanel`` +Path: ``debug_toolbar.panels.versions.VersionsPanel`` -Django version. +Shows versions of Python, Django, and installed apps if possible. Timer ~~~~~ -Path: ``debug_toolbar.panels.timer.TimerDebugPanel`` +Path: ``debug_toolbar.panels.timer.TimerPanel`` Request timer. Settings ~~~~~~~~ -Path: ``debug_toolbar.panels.settings_vars.SettingsVarsDebugPanel`` +Path: ``debug_toolbar.panels.settings.SettingsPanel`` A list of settings in settings.py. Headers ~~~~~~~ -Path: ``debug_toolbar.panels.headers.HeaderDebugPanel`` +Path: ``debug_toolbar.panels.headers.HeadersPanel`` This panels shows the HTTP request and response headers, as well as a selection of values from the WSGI environment. @@ -45,49 +45,49 @@ itself may also add response headers such as ``Date`` and ``Server``. Request ~~~~~~~ -Path: ``debug_toolbar.panels.request_vars.RequestVarsDebugPanel`` +Path: ``debug_toolbar.panels.request.RequestPanel`` GET/POST/cookie/session variable display. SQL ~~~ -Path: ``debug_toolbar.panels.sql.SQLDebugPanel`` +Path: ``debug_toolbar.panels.sql.SQLPanel`` SQL queries including time to execute and links to EXPLAIN each query. Template ~~~~~~~~ -Path: ``debug_toolbar.panels.template.TemplateDebugPanel`` +Path: ``debug_toolbar.panels.templates.TemplatesPanel`` Templates and context used, and their template paths. Cache ~~~~~ -Path: ``debug_toolbar.panels.cache.CacheDebugPanel`` +Path: ``debug_toolbar.panels.cache.CachePanel`` Cache queries. Signal ~~~~~~ -Path: ``debug_toolbar.panels.signals.SignalDebugPanel`` +Path: ``debug_toolbar.panels.signals.SignalsPanel`` List of signals, their args and receivers. Logging ~~~~~~~ -Path: ``debug_toolbar.panels.logger.LoggingPanel`` +Path: ``debug_toolbar.panels.logging.LoggingPanel`` Logging output via Python's built-in :mod:`logging`, or via the `logbook <http://logbook.pocoo.org>`_ module. Redirects ~~~~~~~~~ -Path: ``debug_toolbar.panels.redirects.InterceptRedirectsPanel`` +Path: ``debug_toolbar.panels.redirects.RedirectsPanel`` When this panel is enabled, the debug toolbar will show an intermediate page upon redirect so you can view any debug information prior to redirecting. This @@ -108,7 +108,7 @@ The following panels are disabled by default. You must add them to the Profiling ~~~~~~~~~ -Path: ``debug_toolbar.panels.profiling.ProfilingDebugPanel`` +Path: ``debug_toolbar.panels.profiling.ProfilingPanel`` Profiling information for the view function. diff --git a/example/settings.py b/example/settings.py index a4e9e67..4c29ba9 100644 --- a/example/settings.py +++ b/example/settings.py @@ -76,17 +76,17 @@ if os.environ.get('DJANGO_DATABASE_ENGINE', '').lower() == 'mysql': # django-debug-toolbar -DEBUG_TOOLBAR_PANELS = ( - 'debug_toolbar.panels.version.VersionDebugPanel', - 'debug_toolbar.panels.timer.TimerDebugPanel', - 'debug_toolbar.panels.settings_vars.SettingsVarsDebugPanel', - 'debug_toolbar.panels.headers.HeaderDebugPanel', - 'debug_toolbar.panels.profiling.ProfilingDebugPanel', - 'debug_toolbar.panels.request_vars.RequestVarsDebugPanel', - 'debug_toolbar.panels.sql.SQLDebugPanel', - 'debug_toolbar.panels.template.TemplateDebugPanel', - 'debug_toolbar.panels.cache.CacheDebugPanel', - 'debug_toolbar.panels.signals.SignalDebugPanel', - 'debug_toolbar.panels.logger.LoggingPanel', - 'debug_toolbar.panels.redirects.InterceptRedirectsPanel', -) +DEBUG_TOOLBAR_PANELS = [ + 'debug_toolbar.panels.versions.VersionsPanel', + 'debug_toolbar.panels.timer.TimerPanel', + 'debug_toolbar.panels.settings.SettingsPanel', + 'debug_toolbar.panels.headers.HeadersPanel', + 'debug_toolbar.panels.request.RequestPanel', + 'debug_toolbar.panels.sql.SQLPanel', + 'debug_toolbar.panels.templates.TemplatesPanel', + 'debug_toolbar.panels.cache.CachePanel', + 'debug_toolbar.panels.signals.SignalsPanel', + 'debug_toolbar.panels.logging.LoggingPanel', + 'debug_toolbar.panels.redirects.RedirectsPanel', + 'debug_toolbar.panels.profiling.ProfilingPanel', +] diff --git a/tests/base.py b/tests/base.py index a1a59cc..78f3d6f 100644 --- a/tests/base.py +++ b/tests/base.py @@ -1,4 +1,4 @@ -from __future__ import unicode_literals +from __future__ import absolute_import, unicode_literals import threading diff --git a/tests/commands/test_debugsqlshell.py b/tests/commands/test_debugsqlshell.py index f35ef07..f0c88fa 100644 --- a/tests/commands/test_debugsqlshell.py +++ b/tests/commands/test_debugsqlshell.py @@ -1,4 +1,4 @@ -from __future__ import unicode_literals +from __future__ import absolute_import, unicode_literals import sys diff --git a/tests/models.py b/tests/models.py index 24358c0..78c1eb8 100644 --- a/tests/models.py +++ b/tests/models.py @@ -1,6 +1,6 @@ # coding: utf-8 -from __future__ import unicode_literals +from __future__ import absolute_import, unicode_literals from django.utils import six diff --git a/tests/panels/test_cache.py b/tests/panels/test_cache.py index 42a6814..73b7e7c 100644 --- a/tests/panels/test_cache.py +++ b/tests/panels/test_cache.py @@ -1,6 +1,6 @@ # coding: utf-8 -from __future__ import unicode_literals +from __future__ import absolute_import, unicode_literals from django.core import cache @@ -11,7 +11,7 @@ class CachePanelTestCase(BaseTestCase): def setUp(self): super(CachePanelTestCase, self).setUp() - self.panel = self.toolbar.get_panel_by_id('CacheDebugPanel') + self.panel = self.toolbar.get_panel_by_id('CachePanel') self.panel.enable_instrumentation() def tearDown(self): diff --git a/tests/panels/test_logger.py b/tests/panels/test_logging.py index f5fe375..342e673 100644 --- a/tests/panels/test_logger.py +++ b/tests/panels/test_logging.py @@ -1,8 +1,8 @@ -from __future__ import unicode_literals +from __future__ import absolute_import, unicode_literals import logging -from debug_toolbar.panels.logger import MESSAGE_IF_STRING_REPRESENTATION_INVALID +from debug_toolbar.panels.logging import MESSAGE_IF_STRING_REPRESENTATION_INVALID from ..base import BaseTestCase diff --git a/tests/panels/test_profiling.py b/tests/panels/test_profiling.py index f6bb7d3..7ca7e7b 100644 --- a/tests/panels/test_profiling.py +++ b/tests/panels/test_profiling.py @@ -1,4 +1,4 @@ -from __future__ import unicode_literals +from __future__ import absolute_import, unicode_literals from django.contrib.auth.models import User from django.db import IntegrityError, transaction @@ -17,12 +17,12 @@ from ..base import BaseTestCase from ..views import regular_view -@override_settings(DEBUG_TOOLBAR_PANELS=['debug_toolbar.panels.profiling.ProfilingDebugPanel']) +@override_settings(DEBUG_TOOLBAR_PANELS=['debug_toolbar.panels.profiling.ProfilingPanel']) class ProfilingPanelTestCase(BaseTestCase): def setUp(self): super(ProfilingPanelTestCase, self).setUp() - self.panel = self.toolbar.get_panel_by_id('ProfilingDebugPanel') + self.panel = self.toolbar.get_panel_by_id('ProfilingPanel') def _test_render_with_or_without_line_profiler(self): self.panel.process_view(self.request, regular_view, ('profiling',), {}) @@ -44,7 +44,7 @@ class ProfilingPanelTestCase(BaseTestCase): @override_settings(DEBUG=True, - DEBUG_TOOLBAR_PANELS=['debug_toolbar.panels.profiling.ProfilingDebugPanel']) + DEBUG_TOOLBAR_PANELS=['debug_toolbar.panels.profiling.ProfilingPanel']) class ProfilingPanelIntegrationTestCase(TestCase): def test_view_executed_once(self): diff --git a/tests/panels/test_redirects.py b/tests/panels/test_redirects.py index 400cdcc..7e94e77 100644 --- a/tests/panels/test_redirects.py +++ b/tests/panels/test_redirects.py @@ -1,4 +1,4 @@ -from __future__ import unicode_literals +from __future__ import absolute_import, unicode_literals import django from django.http import HttpResponse @@ -13,7 +13,7 @@ class RedirectsPanelTestCase(BaseTestCase): def setUp(self): super(RedirectsPanelTestCase, self).setUp() - self.panel = self.toolbar.get_panel_by_id('InterceptRedirectsPanel') + self.panel = self.toolbar.get_panel_by_id('RedirectsPanel') def test_regular_response(self): response = self.panel.process_response(self.request, self.response) diff --git a/tests/panels/test_request_vars.py b/tests/panels/test_request.py index a86956f..16843c4 100644 --- a/tests/panels/test_request_vars.py +++ b/tests/panels/test_request.py @@ -1,17 +1,17 @@ # coding: utf-8 -from __future__ import unicode_literals +from __future__ import absolute_import, unicode_literals from django.utils import six from ..base import BaseTestCase -class RequestVarsDebugPanelTestCase(BaseTestCase): +class RequestPanelTestCase(BaseTestCase): def setUp(self): - super(RequestVarsDebugPanelTestCase, self).setUp() - self.panel = self.toolbar.get_panel_by_id('RequestVarsDebugPanel') + super(RequestPanelTestCase, self).setUp() + self.panel = self.toolbar.get_panel_by_id('RequestPanel') def test_non_ascii_session(self): self.request.session = {'où': 'où'} @@ -26,7 +26,7 @@ class RequestVarsDebugPanelTestCase(BaseTestCase): self.assertIn('o\\xf9', content) self.assertIn('l\\xc3\\xa0', content) - def test_object_with_non_ascii_repr_in_request_vars(self): + def test_object_with_non_ascii_repr_in_request_params(self): self.request.path = '/non_ascii_request/' self.panel.process_request(self.request) self.panel.process_response(self.request, self.response) diff --git a/tests/panels/test_sql.py b/tests/panels/test_sql.py index 4a18a16..a6990a3 100644 --- a/tests/panels/test_sql.py +++ b/tests/panels/test_sql.py @@ -1,6 +1,6 @@ # coding: utf-8 -from __future__ import unicode_literals +from __future__ import absolute_import, unicode_literals from django.contrib.auth.models import User from django.db import connection @@ -14,7 +14,7 @@ class SQLPanelTestCase(BaseTestCase): def setUp(self): super(SQLPanelTestCase, self).setUp() - self.panel = self.toolbar.get_panel_by_id('SQLDebugPanel') + self.panel = self.toolbar.get_panel_by_id('SQLPanel') self.panel.enable_instrumentation() def tearDown(self): diff --git a/tests/panels/test_template.py b/tests/panels/test_template.py index 1c43982..8cb29f2 100644 --- a/tests/panels/test_template.py +++ b/tests/panels/test_template.py @@ -1,6 +1,6 @@ # coding: utf-8 -from __future__ import unicode_literals +from __future__ import absolute_import, unicode_literals import django from django.contrib.auth.models import User @@ -10,17 +10,17 @@ from ..base import BaseTestCase from ..models import NonAsciiRepr -class TemplateDebugPanelTestCase(BaseTestCase): +class TemplatesPanelTestCase(BaseTestCase): def setUp(self): - super(TemplateDebugPanelTestCase, self).setUp() - self.panel = self.toolbar.get_panel_by_id('TemplateDebugPanel') - self.sql_panel = self.toolbar.get_panel_by_id('SQLDebugPanel') + super(TemplatesPanelTestCase, self).setUp() + self.panel = self.toolbar.get_panel_by_id('TemplatesPanel') + self.sql_panel = self.toolbar.get_panel_by_id('SQLPanel') self.sql_panel.enable_instrumentation() def tearDown(self): self.sql_panel.disable_instrumentation() - super(TemplateDebugPanelTestCase, self).tearDown() + super(TemplatesPanelTestCase, self).tearDown() def test_queryset_hook(self): t = Template("No context variables here!") diff --git a/tests/test_integration.py b/tests/test_integration.py index b903cb8..e92cab6 100644 --- a/tests/test_integration.py +++ b/tests/test_integration.py @@ -1,6 +1,6 @@ # coding: utf-8 -from __future__ import unicode_literals +from __future__ import absolute_import, unicode_literals import os from xml.etree import ElementTree as ET @@ -40,12 +40,12 @@ class DebugToolbarTestCase(BaseTestCase): self.assertFalse(show_toolbar(self.request)) def _resolve_stats(self, path): - # takes stats from RequestVars panel + # takes stats from Request panel self.request.path = path - panel = self.toolbar.get_panel_by_id('RequestVarsDebugPanel') + panel = self.toolbar.get_panel_by_id('RequestPanel') panel.process_request(self.request) panel.process_response(self.request, self.response) - return self.toolbar.stats['requestvars'] + return self.toolbar.stats['request'] def test_url_resolving_positional(self): stats = self._resolve_stats('/resolving1/a/b/') @@ -120,14 +120,14 @@ class DebugToolbarLiveTestCase(LiveServerTestCase): def test_basic(self): self.selenium.get(self.live_server_url + '/regular/basic/') - version_panel = self.selenium.find_element_by_id('VersionDebugPanel') + version_panel = self.selenium.find_element_by_id('VersionsPanel') - # Version panel isn't loaded + # Versions panel isn't loaded with self.assertRaises(NoSuchElementException): version_panel.find_element_by_tag_name('table') - # Click to show the version panel - self.selenium.find_element_by_class_name('VersionDebugPanel').click() + # Click to show the versions panel + self.selenium.find_element_by_class_name('VersionsPanel').click() # Version panel loads table = WebDriverWait(self.selenium, timeout=10).until( @@ -138,10 +138,10 @@ class DebugToolbarLiveTestCase(LiveServerTestCase): @override_settings(DEBUG_TOOLBAR_CONFIG={'RESULTS_CACHE_SIZE': 0}) def test_expired_storage(self): self.selenium.get(self.live_server_url + '/regular/basic/') - version_panel = self.selenium.find_element_by_id('VersionDebugPanel') + version_panel = self.selenium.find_element_by_id('VersionsPanel') # Click to show the version panel - self.selenium.find_element_by_class_name('VersionDebugPanel').click() + self.selenium.find_element_by_class_name('VersionsPanel').click() # Version panel doesn't loads error = WebDriverWait(self.selenium, timeout=10).until( diff --git a/tests/test_utils.py b/tests/test_utils.py index a930894..40e99be 100644 --- a/tests/test_utils.py +++ b/tests/test_utils.py @@ -1,4 +1,4 @@ -from __future__ import unicode_literals +from __future__ import absolute_import, unicode_literals from django.utils.unittest import TestCase diff --git a/tests/tests.py b/tests/tests.py index b08ac1c..1818fe7 100644 --- a/tests/tests.py +++ b/tests/tests.py @@ -3,10 +3,10 @@ import django if django.VERSION[:2] < (1, 6): # unittest-style discovery isn't available from .commands.test_debugsqlshell import * # noqa from .panels.test_cache import * # noqa - from .panels.test_logger import * # noqa + from .panels.test_logging import * # noqa from .panels.test_profiling import * # noqa from .panels.test_redirects import * # noqa - from .panels.test_request_vars import * # noqa + from .panels.test_request import * # noqa from .panels.test_sql import * # noqa from .panels.test_template import * # noqa from .test_integration import * # noqa diff --git a/tests/urls.py b/tests/urls.py index f297834..0a7ac19 100644 --- a/tests/urls.py +++ b/tests/urls.py @@ -1,6 +1,6 @@ # coding: utf-8 -from __future__ import unicode_literals +from __future__ import absolute_import, unicode_literals from django.conf.urls import include, patterns, url from django.contrib import admin diff --git a/tests/views.py b/tests/views.py index d7ff167..73e0087 100644 --- a/tests/views.py +++ b/tests/views.py @@ -1,6 +1,6 @@ # coding: utf-8 -from __future__ import unicode_literals +from __future__ import absolute_import, unicode_literals from django.contrib.auth.models import User from django.http import HttpResponse |
