1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82
|
import unittest
from django.test import override_settings
import debug_toolbar.utils
from debug_toolbar.utils import (
get_name_from_obj,
get_stack,
get_stack_trace,
render_stacktrace,
tidy_stacktrace,
)
class GetNameFromObjTestCase(unittest.TestCase):
def test_func(self):
def x():
return 1
res = get_name_from_obj(x)
self.assertEqual(res, "tests.test_utils.x")
def test_lambda(self):
res = get_name_from_obj(lambda: 1)
self.assertEqual(res, "tests.test_utils.<lambda>")
def test_class(self):
class A:
pass
res = get_name_from_obj(A)
self.assertEqual(res, "tests.test_utils.A")
class RenderStacktraceTestCase(unittest.TestCase):
def test_importlib_path_issue_1612(self):
trace = [
("/server/app.py", 1, "foo", ["code line 1", "code line 2"], {"foo": "bar"})
]
result = render_stacktrace(trace)
self.assertIn('<span class="djdt-path">/server/</span>', result)
self.assertIn('<span class="djdt-file">app.py</span> in', result)
trace = [
(
"<frozen importlib._bootstrap>",
1,
"foo",
["code line 1", "code line 2"],
{"foo": "bar"},
)
]
result = render_stacktrace(trace)
self.assertIn('<span class="djdt-path"></span>', result)
self.assertIn(
'<span class="djdt-file"><frozen importlib._bootstrap></span> in',
result,
)
class StackTraceTestCase(unittest.TestCase):
@override_settings(DEBUG_TOOLBAR_CONFIG={"HIDE_IN_STACKTRACES": []})
def test_get_stack_trace_skip(self):
stack_trace = get_stack_trace(skip=-1)
self.assertTrue(len(stack_trace) > 2)
self.assertEqual(stack_trace[-1][0], debug_toolbar.utils.__file__)
self.assertEqual(stack_trace[-1][2], "get_stack_trace")
self.assertEqual(stack_trace[-2][0], __file__)
self.assertEqual(stack_trace[-2][2], "test_get_stack_trace_skip")
stack_trace = get_stack_trace()
self.assertTrue(len(stack_trace) > 1)
self.assertEqual(stack_trace[-1][0], __file__)
self.assertEqual(stack_trace[-1][2], "test_get_stack_trace_skip")
def test_deprecated_functions(self):
with self.assertWarns(DeprecationWarning):
stack = get_stack()
self.assertEqual(stack[0][1], __file__)
with self.assertWarns(DeprecationWarning):
stack_trace = tidy_stacktrace(reversed(stack))
self.assertEqual(stack_trace[-1][0], __file__)
|