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))
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))
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')
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))
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))
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))
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')
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')
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')
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')
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')
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")
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')
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 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>")
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
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
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())
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
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)
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)
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')
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>')
def test_middleware_response_only(self): DebugToolbarMiddleware().process_response(self.request, self.response)
def test_middleware_view_only(self): DebugToolbarMiddleware().process_view(self.request, regular_view, ('title', ), {})
def get_stats(self): toolbar = DebugToolbarMiddleware.get_current() return toolbar.stats.get(self.slug, {})
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, {})