Commit e87c9da4 authored by Jannis Leidel's avatar Jannis Leidel
Browse files

[1.3.X] Fixed #15672 -- Refined changes made in r15918. Thanks, vung.

Backport from trunk (r16082).

git-svn-id: http://code.djangoproject.com/svn/django/branches/releases/1.3.X@16083 bcc190cf-cafb-0310-a4f2-bffc1f526a37
parent 4d62386c
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -179,11 +179,10 @@ class ModPythonHandler(BaseHandler):
            try:
                request = self.request_class(req)
            except UnicodeDecodeError:
                logger.warning('Bad Request (UnicodeDecodeError): %s' % request.path,
                logger.warning('Bad Request (UnicodeDecodeError)',
                    exc_info=sys.exc_info(),
                    extra={
                        'status_code': 400,
                        'request': request
                    }
                )
                response = http.HttpResponseBadRequest()
+0 −1
Original line number Diff line number Diff line
@@ -265,7 +265,6 @@ class WSGIHandler(base.BaseHandler):
                    exc_info=sys.exc_info(),
                    extra={
                        'status_code': 400,
                        'request': request
                    }
                )
                response = http.HttpResponseBadRequest()
+9 −0
Original line number Diff line number Diff line
from django.utils import unittest
from django.conf import settings
from django.core.handlers.wsgi import WSGIHandler
from django.test import RequestFactory


class HandlerTests(unittest.TestCase):

@@ -23,3 +25,10 @@ class HandlerTests(unittest.TestCase):
        # Reset settings
        settings.MIDDLEWARE_CLASSES = old_middleware_classes

    def test_bad_path_info(self):
        """Tests for bug #15672 ('request' referenced before assignment)"""
        environ = RequestFactory().get('/').environ
        environ['PATH_INFO'] = '\xed'
        handler = WSGIHandler()
        response = handler(environ, lambda *a, **k: None)
        self.assertEqual(response.status_code, 400)