summaryrefslogtreecommitdiff
path: root/paste/request.py
diff options
context:
space:
mode:
authorbbangert <devnull@localhost>2006-03-13 03:04:46 +0000
committerbbangert <devnull@localhost>2006-03-13 03:04:46 +0000
commitc6b7e520f3e84fd3054b5764de1684a4ce803320 (patch)
tree7a6a54fadf1086d9e1d65f5e7357b8dfddc609eb /paste/request.py
parente1fcc940d53854a3c08e03681229265c1df56a98 (diff)
downloadpaste-c6b7e520f3e84fd3054b5764de1684a4ce803320.tar.gz
Fixed WSGIRequest not parsing right, updating unit tests for WSGIRequest
Diffstat (limited to 'paste/request.py')
-rw-r--r--paste/request.py28
1 files changed, 10 insertions, 18 deletions
diff --git a/paste/request.py b/paste/request.py
index a823d1a..53fd7cb 100644
--- a/paste/request.py
+++ b/paste/request.py
@@ -23,7 +23,7 @@ from util.UserDict24 import UserDict
__all__ = ['get_cookies', 'parse_querystring', 'parse_formvars',
'construct_url', 'path_info_split', 'path_info_pop',
- 'resolve_relative_url']
+ 'resolve_relative_url', 'WSGIRequest']
class environ_getter(object):
"""For delegating an attribute to a key in self.environ."""
@@ -50,7 +50,7 @@ class MultiDict(UserDict):
return self.data[key]
def update(self, dict):
- if isinstance(dct, UserDict):
+ if isinstance(dict, UserDict):
self.data.update(dict.data)
elif isinstance(dict, type(self.data)):
self.data.update(dict)
@@ -136,7 +136,7 @@ def parse_dict_querystring(environ):
strict_parsing=False)
multi = MultiDict()
multi.update(parsed)
- environ['paste.parsed_dict_querystring'] = multi
+ environ['paste.parsed_dict_querystring'] = (multi, source)
return multi
def parse_formvars(environ, all_as_list=False, include_get_vars=True):
@@ -356,30 +356,22 @@ class WSGIRequest(object):
You are free to subclass this object.
"""
-
def __init__(self, environ, urlvars={}):
self.environ = environ
- self.urlvars = urlvars
+ self.__dict__['urlvars'] = urlvars
body = environ_getter('wsgi.input')
- scheme = environ_getter('wsgi.url_scheme') # ?
+ scheme = environ_getter('wsgi.url_scheme')
method = environ_getter('REQUEST_METHOD')
- # wsgi.config would be better, of course:
- config = environ_getter('paste.config')
script_name = environ_getter('SCRIPT_NAME')
path_info = environ_getter('PATH_INFO')
- # Other possible variables:
- # REMOTE_USER, CONTENT_TYPE, CONTENT_LENGTH? Probably not
- # REMOTE_ADDR, REMOTE_HOST, AUTH_TYPE? Even less interesting
- # SERVER_PORT? Maybe
- # SERVER_PROTOCOL, SERVER_SOFTWARE, GATEWAY_INTERFACE? Definitely not
-
+
def host(self):
"""Host name provided in HTTP_HOST, with fall-back to SERVER_NAME"""
return self.environ.get('HTTP_HOST', self.environ.get('SERVER_NAME'))
host = property(host, doc=host.__doc__)
- def get(self):
+ def GET(self):
"""
Dictionary-like object representing the QUERY_STRING
parameters. Always present, if possibly empty.
@@ -388,9 +380,9 @@ class WSGIRequest(object):
times, it will be present as a list.
"""
return parse_dict_querystring(self.environ)
- get = property(get, doc=get.__doc__)
+ GET = property(GET, doc=GET.__doc__)
- def post(self):
+ def POST(self):
"""Dictionary-like object representing the POST body.
Most values are strings, but file uploads can be FieldStorage
@@ -404,7 +396,7 @@ class WSGIRequest(object):
formvars = MultiDict()
formvars.update(parse_formvars(self.environ, all_as_list=True, include_get_vars=False))
return formvars
- post = property(LazyCache(post), doc=post.__doc__)
+ POST = property(LazyCache(POST), doc=POST.__doc__)
def params(self):
"""MultiDict of keys from POST, GET, URL dicts