Author: ramiro Date: 2011-01-20 17:17:37 -0600 (Thu, 20 Jan 2011) New Revision: 15253
Modified: django/branches/releases/1.2.X/django/views/debug.py django/branches/releases/1.2.X/tests/regressiontests/views/tests/debug.py django/branches/releases/1.2.X/tests/regressiontests/views/urls.py django/branches/releases/1.2.X/tests/regressiontests/views/views.py Log: [1.2.X] Fixed #15122 -- Restored reporting of the template files tried in the texmplate loader post mortem section of the TemplateDoesNotExit 500 error debug page. Thanks rdrey for reporting this regression. Backport of [15252] from trunk Modified: django/branches/releases/1.2.X/django/views/debug.py =================================================================== --- django/branches/releases/1.2.X/django/views/debug.py 2011-01-20 22:33:58 UTC (rev 15252) +++ django/branches/releases/1.2.X/django/views/debug.py 2011-01-20 23:17:37 UTC (rev 15253) @@ -88,17 +88,18 @@ for loader in template_source_loaders: try: module = import_module(loader.__module__) - source_list_func = module.get_template_sources + if hasattr(loader, '__class__'): + source_list_func = loader.get_template_sources + loader_name = loader.__module__ + '.' + loader.__class__.__name__ + else: # NOTE: Remember to remove this branch when we deprecate old template loaders in 1.4 + source_list_func = module.get_template_sources + loader_name = loader.__module__ + '.' + loader.__name__ # NOTE: This assumes exc_value is the name of the template that # the loader attempted to load. template_list = [{'name': t, 'exists': os.path.exists(t)} \ for t in source_list_func(str(self.exc_value))] except (ImportError, AttributeError): template_list = [] - if hasattr(loader, '__class__'): - loader_name = loader.__module__ + '.' + loader.__class__.__name__ - else: - loader_name = loader.__module__ + '.' + loader.__name__ self.loader_debug_info.append({ 'loader': loader_name, 'templates': template_list, Modified: django/branches/releases/1.2.X/tests/regressiontests/views/tests/debug.py =================================================================== --- django/branches/releases/1.2.X/tests/regressiontests/views/tests/debug.py 2011-01-20 22:33:58 UTC (rev 15252) +++ django/branches/releases/1.2.X/tests/regressiontests/views/tests/debug.py 2011-01-20 23:17:37 UTC (rev 15253) @@ -48,3 +48,7 @@ self.assertFalse(raising_loc.find('raise BrokenException') == -1, "Failed to find 'raise BrokenException' in last frame of traceback, instead found: %s" % raising_loc) + + def test_template_loader_postmortem(self): + response = self.client.get(reverse('raises_template_does_not_exist')) + self.assertContains(response, 'templates/i_dont_exist.html</code> (File does not exist)</li>', status_code=500) Modified: django/branches/releases/1.2.X/tests/regressiontests/views/urls.py =================================================================== --- django/branches/releases/1.2.X/tests/regressiontests/views/urls.py 2011-01-20 22:33:58 UTC (rev 15252) +++ django/branches/releases/1.2.X/tests/regressiontests/views/urls.py 2011-01-20 23:17:37 UTC (rev 15253) @@ -128,4 +128,5 @@ urlpatterns += patterns('regressiontests.views.views', url(r'view_exception/(?P<n>\d+)/$', 'view_exception', name='view_exception'), url(r'template_exception/(?P<n>\d+)/$', 'template_exception', name='template_exception'), + url(r'^raises_template_does_not_exist/$', 'raises_template_does_not_exist', name='raises_template_does_not_exist'), ) Modified: django/branches/releases/1.2.X/tests/regressiontests/views/views.py =================================================================== --- django/branches/releases/1.2.X/tests/regressiontests/views/views.py 2011-01-20 22:33:58 UTC (rev 15252) +++ django/branches/releases/1.2.X/tests/regressiontests/views/views.py 2011-01-20 23:17:37 UTC (rev 15253) @@ -1,11 +1,12 @@ import sys +from django import forms from django.http import HttpResponse, HttpResponseRedirect -from django import forms +from django.core.urlresolvers import get_resolver +from django.shortcuts import render_to_response +from django.template import TemplateDoesNotExist from django.views.debug import technical_500_response from django.views.generic.create_update import create_object -from django.core.urlresolvers import get_resolver -from django.shortcuts import render_to_response from regressiontests.views import BrokenException, except_args @@ -57,3 +58,11 @@ return render_to_response('debug/template_exception.html', {'arg': except_args[int(n)]}) +def raises_template_does_not_exist(request): + # We need to inspect the HTML generated by the fancy 500 debug view but + # the test client ignores it, so we send it explicitly. + try: + return render_to_response('i_dont_exist.html') + except TemplateDoesNotExist: + return technical_500_response(request, *sys.exc_info()) + -- You received this message because you are subscribed to the Google Groups "Django updates" group. To post to this group, send email to django-updates@googlegroups.com. To unsubscribe from this group, send email to django-updates+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/django-updates?hl=en.