Commit 5acb2258 by Ned Batchelder

Print the full traceback when execution fails.

parent 839c5684
"""Views for debugging and diagnostics""" """Views for debugging and diagnostics"""
import pprint import pprint
import traceback
from django.http import Http404 from django.http import Http404
from django.contrib.auth.decorators import login_required from django.contrib.auth.decorators import login_required
...@@ -12,6 +13,7 @@ from codejail.safe_exec import safe_exec ...@@ -12,6 +13,7 @@ from codejail.safe_exec import safe_exec
@login_required @login_required
@ensure_csrf_cookie @ensure_csrf_cookie
def run_python(request): def run_python(request):
"""A page to allow testing the Python sandbox on a production server."""
if not request.user.is_staff: if not request.user.is_staff:
raise Http404 raise Http404
c = {} c = {}
...@@ -23,7 +25,7 @@ def run_python(request): ...@@ -23,7 +25,7 @@ def run_python(request):
try: try:
safe_exec(py_code, g) safe_exec(py_code, g)
except Exception as e: except Exception as e:
c['results'] = str(e) c['results'] = traceback.format_exc()
else: else:
c['results'] = pprint.pformat(g) c['results'] = pprint.pformat(g)
return render_to_response("debug/run_python_form.html", c) return render_to_response("debug/run_python_form.html", c)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment