mirror of
https://github.com/django/django.git
synced 2025-08-04 19:08:28 +00:00
Fixed #28485 -- Made ExceptionReporter.get_traceback_frames() include frames without source code.
This commit is contained in:
parent
90d7b912b9
commit
71d39571f4
3 changed files with 42 additions and 16 deletions
|
@ -375,6 +375,27 @@ class ExceptionReporterTests(SimpleTestCase):
|
|||
self.assertIn(implicit_exc.format("Second exception"), text)
|
||||
self.assertEqual(3, text.count('<p>Final exception</p>'))
|
||||
|
||||
def test_reporting_frames_without_source(self):
|
||||
try:
|
||||
source = "def funcName():\n raise Error('Whoops')\nfuncName()"
|
||||
namespace = {}
|
||||
code = compile(source, 'generated', 'exec')
|
||||
exec(code, namespace)
|
||||
except Exception:
|
||||
exc_type, exc_value, tb = sys.exc_info()
|
||||
request = self.rf.get('/test_view/')
|
||||
reporter = ExceptionReporter(request, exc_type, exc_value, tb)
|
||||
frames = reporter.get_traceback_frames()
|
||||
last_frame = frames[-1]
|
||||
self.assertEqual(last_frame['context_line'], '<source code not available>')
|
||||
self.assertEqual(last_frame['filename'], 'generated')
|
||||
self.assertEqual(last_frame['function'], 'funcName')
|
||||
self.assertEqual(last_frame['lineno'], 2)
|
||||
html = reporter.get_traceback_html()
|
||||
self.assertIn('generated in funcName', html)
|
||||
text = reporter.get_traceback_text()
|
||||
self.assertIn('"generated" in funcName', text)
|
||||
|
||||
def test_request_and_message(self):
|
||||
"A message can be provided in addition to a request"
|
||||
request = self.rf.get('/test_view/')
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue