Author: kmtracey
Date: 2010-03-05 12:53:07 -0600 (Fri, 05 Mar 2010)
New Revision: 12679

Modified:
   django/trunk/django/views/debug.py
   django/trunk/tests/regressiontests/views/tests/debug.py
   django/trunk/tests/regressiontests/views/urls.py
   django/trunk/tests/regressiontests/views/views.py
Log:
Fixed #12083: Ensured generating debug 404 page won't raise a key error. Thanks 
pigletto.


Modified: django/trunk/django/views/debug.py
===================================================================
--- django/trunk/django/views/debug.py  2010-03-04 01:11:37 UTC (rev 12678)
+++ django/trunk/django/views/debug.py  2010-03-05 18:53:07 UTC (rev 12679)
@@ -268,7 +268,7 @@
     "Create a technical 404 error response. The exception should be the 
Http404."
     try:
         tried = exception.args[0]['tried']
-    except (IndexError, TypeError):
+    except (IndexError, TypeError, KeyError):
         tried = []
     else:
         if not tried:

Modified: django/trunk/tests/regressiontests/views/tests/debug.py
===================================================================
--- django/trunk/tests/regressiontests/views/tests/debug.py     2010-03-04 
01:11:37 UTC (rev 12678)
+++ django/trunk/tests/regressiontests/views/tests/debug.py     2010-03-05 
18:53:07 UTC (rev 12679)
@@ -19,3 +19,7 @@
         response = self.client.post('/views/raises/', data)
         self.failUnless('file_data.txt' in response.content)
         self.failIf('haha' in response.content)
+
+    def test_404(self):
+        response = self.client.get('/views/raises404/')
+        self.assertEquals(response.status_code, 404)

Modified: django/trunk/tests/regressiontests/views/urls.py
===================================================================
--- django/trunk/tests/regressiontests/views/urls.py    2010-03-04 01:11:37 UTC 
(rev 12678)
+++ django/trunk/tests/regressiontests/views/urls.py    2010-03-05 18:53:07 UTC 
(rev 12679)
@@ -95,7 +95,8 @@
 
 # a view that raises an exception for the debug view
 urlpatterns += patterns('',
-    (r'^raises/$', views.raises)
+    (r'^raises/$', views.raises),
+    (r'^raises404/$', views.raises404),
 )
 
 # rediriects, both temporary and permanent, with non-ASCII targets

Modified: django/trunk/tests/regressiontests/views/views.py
===================================================================
--- django/trunk/tests/regressiontests/views/views.py   2010-03-04 01:11:37 UTC 
(rev 12678)
+++ django/trunk/tests/regressiontests/views/views.py   2010-03-05 18:53:07 UTC 
(rev 12679)
@@ -4,6 +4,7 @@
 from django import forms
 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 models import Article
 
@@ -12,7 +13,6 @@
     """Dummy index page"""
     return HttpResponse('<html><body>Dummy page</body></html>')
 
-
 def custom_create(request):
     """
     Calls create_object generic view with a custom form class.
@@ -37,6 +37,10 @@
     except Exception:
         return technical_500_response(request, *sys.exc_info())
 
+def raises404(request):
+    resolver = get_resolver(None)
+    resolver.resolve('')
+        
 def redirect(request):
     """
     Forces an HTTP redirect.

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/django-updates?hl=en.

Reply via email to