Ejemplo n.º 1
0
    def test_show_toolbar_TEST(self):
        request = rf.get('/')
        middleware = DebugToolbarMiddleware()

        with Settings(INTERNAL_IPS=['127.0.0.1'], TEST=True, DEBUG=True):
            self.assertFalse(middleware._show_toolbar(request))

        with Settings(INTERNAL_IPS=['127.0.0.1'], TEST=False, DEBUG=True):
            self.assertTrue(middleware._show_toolbar(request))
Ejemplo n.º 2
0
 def test_tuple_urlconf(self):
     request = rf.get('/')
     urls = __import__('tests.urls').urls
     urls.urlpatterns = tuple(urls.urlpatterns)
     request.urlconf = urls
     middleware = DebugToolbarMiddleware()
     with Settings(INTERNAL_IPS=['127.0.0.1'], DEBUG=True):
         middleware.process_request(request)
         self.assertFalse(isinstance(request.urlconf, basestring))
    def test_tuple_urlconf(self):
        request = rf.get('/')
        urls = __import__('tests.urls').urls
        urls.urlpatterns = tuple(urls.urlpatterns)
        request.urlconf = urls
        middleware = DebugToolbarMiddleware()

        middleware.process_request(request)

        self.assertFalse(isinstance(request.urlconf, six.string_types))
Ejemplo n.º 4
0
    def test_tuple_urlconf(self):
        request = rf.get('/')
        urls = __import__('tests.urls').urls
        urls.urlpatterns = tuple(urls.urlpatterns)
        request.urlconf = urls
        middleware = DebugToolbarMiddleware()

        middleware.process_request(request)

        self.assertFalse(isinstance(request.urlconf, six.string_types))
    def test_request_urlconf_string(self):
        request = rf.get('/')
        set_urlconf('tests.urls')
        middleware = DebugToolbarMiddleware()

        middleware.process_request(request)

        patterns = get_resolver(get_urlconf()).url_patterns
        self.assertTrue(hasattr(patterns[1], '_callback_str'))
        self.assertEqual(patterns[-1]._callback_str, 'tests.views.execute_sql')
Ejemplo n.º 6
0
    def test_show_toolbar_TEST(self):
        request = self.request

        middleware = DebugToolbarMiddleware()

        with Settings(TEST=True, DEBUG=True):
            self.assertFalse(middleware._show_toolbar(request))

        with Settings(TEST=False, DEBUG=True):
            self.assertTrue(middleware._show_toolbar(request))
Ejemplo n.º 7
0
    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"], DEBUG=True):
            self.assertTrue(middleware._show_toolbar(request))

        with Settings(INTERNAL_IPS=[], DEBUG=True):
            self.assertFalse(middleware._show_toolbar(request))
Ejemplo n.º 8
0
    def test_show_toolbar_INTERNAL_IPS(self):
        request = rf.get('/')

        request.META = {'REMOTE_ADDR': '127.0.0.1'}
        middleware = DebugToolbarMiddleware()

        with Settings(INTERNAL_IPS=['127.0.0.1'], DEBUG=True):
            self.assertTrue(middleware._show_toolbar(request))

        with Settings(INTERNAL_IPS=[], DEBUG=True):
            self.assertFalse(middleware._show_toolbar(request))
Ejemplo n.º 9
0
    def test_show_toolbar_TEST(self):
        request = self.request

        request.META = {'REMOTE_ADDR': '127.0.0.1'}
        middleware = DebugToolbarMiddleware()

        with Settings(INTERNAL_IPS=['127.0.0.1'], TEST=True, DEBUG=True):
            self.assertFalse(middleware._show_toolbar(request))

        with Settings(INTERNAL_IPS=['127.0.0.1'], TEST=False, DEBUG=True):
            self.assertTrue(middleware._show_toolbar(request))
Ejemplo n.º 10
0
    def test_show_toolbar_TEST(self):
        request = self.request
        
        request.META = {'REMOTE_ADDR': '127.0.0.1'}
        middleware = DebugToolbarMiddleware()
        
        with Settings(INTERNAL_IPS=['127.0.0.1'], TEST=True, DEBUG=True):
            self.assertFalse(middleware._show_toolbar(request))

        with Settings(INTERNAL_IPS=['127.0.0.1'], TEST=False, DEBUG=True):
            self.assertTrue(middleware._show_toolbar(request))
    def test_request_urlconf_module(self):
        request = rf.get('/')
        request.urlconf = __import__('tests.urls').urls
        middleware = DebugToolbarMiddleware()

        middleware.process_request(request)

        self.assertFalse(isinstance(request.urlconf, six.string_types))

        patterns = request.urlconf.urlpatterns
        self.assertTrue(hasattr(patterns[1], '_callback_str'))
        self.assertEqual(patterns[-1]._callback_str, 'tests.views.execute_sql')
Ejemplo n.º 12
0
    def test_request_urlconf_module(self):
        request = rf.get('/')
        request.urlconf = __import__('tests.urls').urls
        middleware = DebugToolbarMiddleware()

        middleware.process_request(request)

        self.assertFalse(isinstance(request.urlconf, six.string_types))

        patterns = request.urlconf.urlpatterns
        self.assertTrue(hasattr(patterns[1], '_callback_str'))
        self.assertEqual(patterns[-1]._callback_str, 'tests.views.execute_sql')
Ejemplo n.º 13
0
    def test_request_urlconf_module(self):
        request = rf.get('/')
        request.urlconf = __import__('tests.urls').urls
        middleware = DebugToolbarMiddleware()

        with Settings(INTERNAL_IPS=['127.0.0.1'], DEBUG=True):
            middleware.process_request(request)

            self.assertFalse(isinstance(request.urlconf, string_types))

            self.assertTrue(hasattr(request.urlconf.urlpatterns[1], '_callback_str'))
            self.assertEqual(request.urlconf.urlpatterns[-1]._callback_str, 'tests.views.execute_sql')
Ejemplo n.º 14
0
    def test_request_urlconf_module(self):
        request = rf.get('/')
        request.urlconf = __import__('tests.urls').urls
        middleware = DebugToolbarMiddleware()

        with self.settings(INTERNAL_IPS=['127.0.0.1'], DEBUG=True):
            middleware.process_request(request)

            self.assertFalse(isinstance(request.urlconf, six.string_types))

            self.assertTrue(hasattr(request.urlconf.urlpatterns[1], '_callback_str'))
            self.assertEqual(request.urlconf.urlpatterns[-1]._callback_str, 'tests.views.execute_sql')
Ejemplo n.º 15
0
    def test_request_urlconf_string(self):
        request = rf.get('/')
        request.urlconf = 'tests.urls'
        middleware = DebugToolbarMiddleware()

        with Settings(INTERNAL_IPS=['127.0.0.1'], DEBUG=True):
            middleware.process_request(request)

            self.assertFalse(isinstance(request.urlconf, basestring))

            self.assertTrue(hasattr(request.urlconf.urlpatterns[1], '_callback_str'))
            self.assertEquals(request.urlconf.urlpatterns[-1]._callback_str, 'tests.views.execute_sql')
Ejemplo n.º 16
0
    def test_request_urlconf_string(self):
        request = rf.get('/')
        request.urlconf = 'tests.urls'
        middleware = DebugToolbarMiddleware()

        with Settings(INTERNAL_IPS=['127.0.0.1'], DEBUG=True):
            middleware.process_request(request)

            self.assertFalse(isinstance(request.urlconf, basestring))

            self.assertTrue(hasattr(request.urlconf.urlpatterns[0], '_callback_str'))
            self.assertEquals(request.urlconf.urlpatterns[0]._callback_str, 'debug_toolbar.views.debug_media')
            self.assertTrue(hasattr(request.urlconf.urlpatterns[1], '_callback_str'))
            self.assertEquals(request.urlconf.urlpatterns[-1]._callback_str, 'tests.views.execute_sql')
Ejemplo n.º 17
0
    def test_request_urlconf_string(self):
        request = self.request

        request.urlconf = "tests.urls"
        request.META = {"REMOTE_ADDR": "127.0.0.1"}
        middleware = DebugToolbarMiddleware()

        with Settings(INTERNAL_IPS=["127.0.0.1"], DEBUG=True):
            middleware.process_request(request)

            self.assertFalse(isinstance(request.urlconf, basestring))

            self.assertTrue(hasattr(request.urlconf.urlpatterns[0], "_callback_str"))
            self.assertEquals(request.urlconf.urlpatterns[0]._callback_str, "debug_toolbar.views.debug_media")
            self.assertEquals(request.urlconf.urlpatterns[-1].urlconf_name.__name__, "tests.urls")
Ejemplo n.º 18
0
    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)

            self.assertFalse(isinstance(request.urlconf, basestring))

            self.assertTrue(hasattr(request.urlconf.urlpatterns[0], '_callback_str'))
            self.assertEquals(request.urlconf.urlpatterns[0]._callback_str, 'debug_toolbar.views.debug_media')
            self.assertEquals(request.urlconf.urlpatterns[-1].urlconf_name.__name__, 'debug_toolbar.tests.urls')
Ejemplo n.º 19
0
 def test_request_urlconf_module(self):
     request = self.request
     
     request.urlconf = __import__('tests.urls').urls
     request.META = {'REMOTE_ADDR': '127.0.0.1'}
     middleware = DebugToolbarMiddleware()
     
     with Settings(INTERNAL_IPS=['127.0.0.1'], DEBUG=True):
         middleware.process_request(request)
         
         self.assertFalse(isinstance(request.urlconf, basestring))
         
         self.assertTrue(hasattr(request.urlconf.urlpatterns[0], '_callback_str'))
         self.assertEquals(request.urlconf.urlpatterns[0]._callback_str, 'debug_toolbar.views.debug_media')
         self.assertTrue(hasattr(request.urlconf.urlpatterns[1], '_callback_str'))
         self.assertEquals(request.urlconf.urlpatterns[-1]._callback_str, 'tests.views.execute_sql')
Ejemplo n.º 20
0
    def test_middleware_response_insertion(self):
        def get_response(request):
            return regular_view(request, "İ")

        response = DebugToolbarMiddleware(get_response)(self.request)
        # check toolbar insertion before "</body>"
        self.assertContains(response, "</div>\n</body>")
Ejemplo n.º 21
0
 def record_stats(self, stats):
     toolbar = DebugToolbarMiddleware.get_current()
     panel_stats = toolbar.stats.get(self.slug)
     if panel_stats:
         panel_stats.update(stats)
     else:
         toolbar.stats[self.slug] = stats
Ejemplo n.º 22
0
 def record_stats(self, stats):
     toolbar = DebugToolbarMiddleware.get_current()
     panel_stats = toolbar.stats.get(self.slug)
     if panel_stats:
         panel_stats.update(stats)
     else:
         toolbar.stats[self.slug] = stats
Ejemplo n.º 23
0
def execute_command(func,self,*args,**options):

    command = args[0]
    start = datetime.now()
    result = func(self,*args,**options)

    stop = datetime.now()
    duration = ms_from_timedelta(stop - start)

    #TODO find more better way to get the calling func info
    calframe = _get_func_info()

    params = {
        'func':calframe[4][3],
        'func_path':"{}:{}".format(calframe[4][1],calframe[4][2]),
        'command':command,
        'result':result,
        'start_time':start,
        'stop_time':stop,
        'duration':duration,
        'is_slow':None,

    }

    #TODO more better way to loggging?
    djdt = DebugToolbarMiddleware.get_current()
    if not djdt:
        return result
    logger = djdt.get_panel(RedisDebugPanel)
    logger.record(**params)

    return result
Ejemplo n.º 24
0
    def test_middleware_no_injection_when_encoded(self):
        def get_response(request):
            response = HttpResponse("<html><body></body></html>")
            response["Content-Encoding"] = "something"
            return response

        response = DebugToolbarMiddleware(get_response)(self.request)
        self.assertEqual(response.content, b"<html><body></body></html>")
def cursor(func, self):
    result = func(self)

    djdt = DebugToolbarMiddleware.get_current()
    if not djdt:
        return result

    return CursorWrapper(result, self, logger=_logger())
Ejemplo n.º 26
0
 def record_stats(self, stats):
     # import locally to work around recursive imports
     from debug_toolbar.middleware import DebugToolbarMiddleware
     toolbar = DebugToolbarMiddleware.get_current()
     panel_stats = toolbar.stats.get(self.slug)
     if panel_stats:
         panel_stats.update(stats)
     else:
         toolbar.stats[self.slug] = stats
Ejemplo n.º 27
0
def cursor(func, self):
    result = func(self)

    djdt = DebugToolbarMiddleware.get_current()
    if not djdt:
        return result
    logger = djdt.get_panel(SQLDebugPanel)

    return CursorWrapper(result, self, logger=logger)
Ejemplo n.º 28
0
def cursor(func, self):
    result = func(self)

    djdt = DebugToolbarMiddleware.get_current()
    if not djdt:
        return result
    logger = djdt.get_panel(SQLDebugPanel)
    
    return CursorWrapper(result, self, logger=logger)
Ejemplo n.º 29
0
    def test_request_urlconf_module(self):
        request = self.request

        request.urlconf = __import__('tests.urls').urls
        request.META = {'REMOTE_ADDR': '127.0.0.1'}
        middleware = DebugToolbarMiddleware()

        with Settings(INTERNAL_IPS=['127.0.0.1'], DEBUG=True):
            middleware.process_request(request)

            self.assertFalse(isinstance(request.urlconf, basestring))

            self.assertTrue(
                hasattr(request.urlconf.urlpatterns[0], '_callback_str'))
            self.assertEquals(request.urlconf.urlpatterns[0]._callback_str,
                              'debug_toolbar.views.debug_media')
            self.assertTrue(
                hasattr(request.urlconf.urlpatterns[1], '_callback_str'))
            self.assertEquals(request.urlconf.urlpatterns[-1]._callback_str,
                              'tests.views.execute_sql')
def record(func, *args, **kwargs):
    djdt = DebugToolbarMiddleware.get_current()
    if not djdt:
        return func(*args, **kwargs)

    panel = djdt.get_panel(BasePanel)

    # Get stacktrace
    if ENABLE_STACKTRACES:
        stacktrace = tidy_stacktrace(reversed(get_stack()))
    else:
        stacktrace = []

    # Get template info
    template_info = None
    cur_frame = sys._getframe().f_back
    try:
        while cur_frame is not None:
            if cur_frame.f_code.co_name == 'render':
                node = cur_frame.f_locals['self']
                if isinstance(node, Node):
                    template_info = get_template_info(node.source)
                    break
            cur_frame = cur_frame.f_back
    except:
        pass
    del cur_frame

    # Find args
    cache_args = None
    # first arg is self, do we have another
    if len(args) > 1:
        cache_args = args[1]
        # is it a dictionary (most likely multi)
        if isinstance(cache_args, dict):
            # just use it's keys
            cache_args = cache_args.keys()

    # the clock starts now
    start = datetime.now()
    try:
        return func(*args, **kwargs)
    finally:
        # the clock stops now
        duration = ms_from_timedelta(datetime.now() - start)
        call = {
            'function': func.__name__,
            'args': cache_args,
            'duration': duration,
            'stacktrace': stacktrace,
            'template_info': template_info,
        }
        panel.record(**call)
Ejemplo n.º 31
0
def record(func, *args, **kwargs):
    djdt = DebugToolbarMiddleware.get_current()
    if not djdt:
        return func(*args, **kwargs)

    panel = djdt.get_panel(BasePanel)

    # Get stacktrace
    if ENABLE_STACKTRACES:
        stacktrace = tidy_stacktrace(reversed(get_stack()))
    else:
        stacktrace = []

    # Get template info
    template_info = None
    cur_frame = sys._getframe().f_back
    try:
        while cur_frame is not None:
            if cur_frame.f_code.co_name == 'render':
                node = cur_frame.f_locals['self']
                if isinstance(node, Node):
                    template_info = get_template_info(node.source)
                    break
            cur_frame = cur_frame.f_back
    except:
        pass
    del cur_frame

    # Find args
    cache_args = None
    # first arg is self, do we have another
    if len(args) > 1:
        cache_args = args[1]
        # is it a dictionary (most likely multi)
        if isinstance(cache_args, dict):
            # just use it's keys
            cache_args = cache_args.keys()

    # the clock starts now
    start = datetime.now()
    try:
        return func(*args, **kwargs)
    finally:
        # the clock stops now
        duration = ms_from_timedelta(datetime.now() - start)
        call = {
            'function': func.__name__,
            'args': cache_args,
            'duration': duration,
            'stacktrace': stacktrace,
            'template_info': template_info,
        }
        panel.record(**call)
Ejemplo n.º 32
0
    def test_request_urlconf_string_per_request(self):
        request = rf.get('/')
        request.urlconf = 'debug_toolbar.urls'
        middleware = DebugToolbarMiddleware()

        with self.settings(INTERNAL_IPS=['127.0.0.1'], DEBUG=True):
            middleware.process_request(request)
            request.urlconf = 'tests.urls'
            middleware.process_request(request)

            self.assertFalse(isinstance(request.urlconf, six.string_types))

            patterns = request.urlconf.urlpatterns
            self.assertTrue(hasattr(patterns[1], '_callback_str'))
            self.assertEqual(patterns[-1]._callback_str, 'tests.views.execute_sql')
Ejemplo n.º 33
0
 def test_middleware_response_insertion(self):
     resp = regular_view(self.request, "İ")
     DebugToolbarMiddleware().process_response(self.request, resp)
     # check toolbar insertion before "</body>"
     self.assertContains(resp, '</div>\n</body>')
Ejemplo n.º 34
0
 def test_middleware_response_only(self):
     DebugToolbarMiddleware().process_response(self.request, self.response)
Ejemplo n.º 35
0
 def test_middleware_view_only(self):
     DebugToolbarMiddleware().process_view(self.request, regular_view,
                                           ('title', ), {})
Ejemplo n.º 36
0
 def get_stats(self):
     toolbar = DebugToolbarMiddleware.get_current()
     return toolbar.stats.get(self.slug, {})
Ejemplo n.º 37
0
 def get_stats(self):
     # import locally to work around recursive imports
     from debug_toolbar.middleware import DebugToolbarMiddleware
     toolbar = DebugToolbarMiddleware.get_current()
     return toolbar.stats.get(self.slug, {})
Ejemplo n.º 38
0
 def get_stats(self):
     toolbar = DebugToolbarMiddleware.get_current()
     return toolbar.stats.get(self.slug, {})