Author: adrian
Date: 2010-01-10 12:48:08 -0600 (Sun, 10 Jan 2010)
New Revision: 12186

Modified:
   django/trunk/django/core/handlers/base.py
   django/trunk/tests/regressiontests/middleware_exceptions/tests.py
Log:
Fixed #6094 again -- fixed broken unit tests. Thanks, isagalaev

Modified: django/trunk/django/core/handlers/base.py
===================================================================
--- django/trunk/django/core/handlers/base.py   2010-01-10 18:44:39 UTC (rev 
12185)
+++ django/trunk/django/core/handlers/base.py   2010-01-10 18:48:08 UTC (rev 
12186)
@@ -72,20 +72,22 @@
             try:
                 # Reset the urlconf for this thread.
                 urlresolvers.set_urlconf(None)
+                # Obtain a default resolver. It's needed early for handling 
404's.
+                resolver = urlresolvers.RegexURLResolver(r'^/', None)
 
+                # Apply request middleware
+                for middleware_method in self._request_middleware:
+                    response = middleware_method(request)
+                    if response:
+                        return response
+
                 # Get urlconf from request object, if available.  Otherwise 
use default.
                 urlconf = getattr(request, "urlconf", settings.ROOT_URLCONF)
-
                 # Set the urlconf for this thread to the one specified above.
                 urlresolvers.set_urlconf(urlconf)
+                # Reset the resolver with a possibly new urlconf
                 resolver = urlresolvers.RegexURLResolver(r'^/', urlconf)
 
-                # Apply request middleware
-                for middleware_method in self._request_middleware:
-                    response = middleware_method(request)
-                    if response:
-                        return response
-
                 callback, callback_args, callback_kwargs = resolver.resolve(
                         request.path_info)
 

Modified: django/trunk/tests/regressiontests/middleware_exceptions/tests.py
===================================================================
--- django/trunk/tests/regressiontests/middleware_exceptions/tests.py   
2010-01-10 18:44:39 UTC (rev 12185)
+++ django/trunk/tests/regressiontests/middleware_exceptions/tests.py   
2010-01-10 18:48:08 UTC (rev 12186)
@@ -8,15 +8,13 @@
         raise Exception('Exception')
 
 class MiddlewareExceptionTest(TestCase):
-    def __init__(self, *args, **kwargs):
-        super(MiddlewareExceptionTest, self).__init__(*args, **kwargs)
+    def setUp(self):
         self.exceptions = []
         got_request_exception.connect(self._on_request_exception)
-
-    def setUp(self):
         self.client.handler.load_middleware()
 
     def tearDown(self):
+        got_request_exception.disconnect(self._on_request_exception)
         self.exceptions = []
 
     def _on_request_exception(self, sender, request, **kwargs):

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To post to this group, send email to django-upda...@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.


Reply via email to