Fixed #5595 -- Made `ModPythonRequest.__repr__` return a string instead of a unicode object. Fixes the printout of the request object in those server error e-mails I never get :)
git-svn-id: http://code.djangoproject.com/svn/django/trunk@7200 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
1e2852a15d
commit
d73c70d1ed
|
@ -6,7 +6,7 @@ from django.core import signals
|
||||||
from django.core.handlers.base import BaseHandler
|
from django.core.handlers.base import BaseHandler
|
||||||
from django.dispatch import dispatcher
|
from django.dispatch import dispatcher
|
||||||
from django.utils import datastructures
|
from django.utils import datastructures
|
||||||
from django.utils.encoding import force_unicode
|
from django.utils.encoding import force_unicode, smart_str
|
||||||
|
|
||||||
# NOTE: do *not* import settings (or any module which eventually imports
|
# NOTE: do *not* import settings (or any module which eventually imports
|
||||||
# settings) until after ModPythonHandler has been called; otherwise os.environ
|
# settings) until after ModPythonHandler has been called; otherwise os.environ
|
||||||
|
@ -36,8 +36,9 @@ class ModPythonRequest(http.HttpRequest):
|
||||||
meta = pformat(self.META)
|
meta = pformat(self.META)
|
||||||
except:
|
except:
|
||||||
meta = '<could not parse>'
|
meta = '<could not parse>'
|
||||||
return '<ModPythonRequest\npath:%s,\nGET:%s,\nPOST:%s,\nCOOKIES:%s,\nMETA:%s>' % \
|
return smart_str(u'<ModPythonRequest\npath:%s,\nGET:%s,\nPOST:%s,\nCOOKIES:%s,\nMETA:%s>' %
|
||||||
(self.path, get, post, cookies, meta)
|
(self.path, unicode(get), unicode(post),
|
||||||
|
unicode(cookies), unicode(meta)))
|
||||||
|
|
||||||
def get_full_path(self):
|
def get_full_path(self):
|
||||||
return '%s%s' % (self.path, self._req.args and ('?' + self._req.args) or '')
|
return '%s%s' % (self.path, self._req.args and ('?' + self._req.args) or '')
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
"""
|
||||||
|
Tests for Django's various Request objects.
|
||||||
|
"""
|
|
@ -0,0 +1 @@
|
||||||
|
# Need a models module for the test runner.
|
|
@ -0,0 +1,34 @@
|
||||||
|
"""
|
||||||
|
>>> from django.http import HttpRequest
|
||||||
|
>>> print repr(HttpRequest())
|
||||||
|
<HttpRequest
|
||||||
|
GET:{},
|
||||||
|
POST:{},
|
||||||
|
COOKIES:{},
|
||||||
|
META:{}>
|
||||||
|
|
||||||
|
>>> from django.core.handlers.wsgi import WSGIRequest
|
||||||
|
>>> print repr(WSGIRequest({'PATH_INFO': 'bogus', 'REQUEST_METHOD': 'bogus'}))
|
||||||
|
<WSGIRequest
|
||||||
|
GET:<QueryDict: {}>,
|
||||||
|
POST:<QueryDict: {}>,
|
||||||
|
COOKIES:{},
|
||||||
|
META:{'REQUEST_METHOD': 'bogus', 'PATH_INFO': 'bogus'}>
|
||||||
|
|
||||||
|
>>> from django.core.handlers.modpython import ModPythonRequest
|
||||||
|
>>> class FakeModPythonRequest(ModPythonRequest):
|
||||||
|
... def __init__(self, *args, **kwargs):
|
||||||
|
... super(FakeModPythonRequest, self).__init__(*args, **kwargs)
|
||||||
|
... self._get = self._post = self._meta = self._cookies = {}
|
||||||
|
>>> class Dummy: pass
|
||||||
|
...
|
||||||
|
>>> req = Dummy()
|
||||||
|
>>> req.uri = 'bogus'
|
||||||
|
>>> print repr(FakeModPythonRequest(req))
|
||||||
|
<ModPythonRequest
|
||||||
|
path:bogus,
|
||||||
|
GET:{},
|
||||||
|
POST:{},
|
||||||
|
COOKIES:{},
|
||||||
|
META:{}>
|
||||||
|
"""
|
Loading…
Reference in New Issue