diff options
| author | Chris McDonough <chrism@plope.com> | 2012-01-28 04:37:39 -0500 |
|---|---|---|
| committer | Chris McDonough <chrism@plope.com> | 2012-01-28 04:37:39 -0500 |
| commit | a1e241eac8883e4f07a15a96b79e2cf41ad3e381 (patch) | |
| tree | c7d31b6540e13a2c6a96db6ca706eee016b1785a /webob | |
| parent | f0806ecd790f0a1d81d7cebc6cfd04e63b8def5d (diff) | |
| download | webob-a1e241eac8883e4f07a15a96b79e2cf41ad3e381.tar.gz | |
test textrequest and bytesrequest independently
Diffstat (limited to 'webob')
| -rw-r--r-- | webob/__init__.py | 4 | ||||
| -rw-r--r-- | webob/request.py | 19 |
2 files changed, 12 insertions, 11 deletions
diff --git a/webob/__init__.py b/webob/__init__.py index 670145f..133d84b 100644 --- a/webob/__init__.py +++ b/webob/__init__.py @@ -4,11 +4,11 @@ from webob.response import * from webob.util import html_escape __all__ = [ - 'Request', 'Response', + 'Request', 'Response', 'TextRequest', 'BytesRequest', 'RequestMixin', 'UTC', 'day', 'week', 'hour', 'minute', 'second', 'month', 'year', 'html_escape' ] -BaseRequest.ResponseClass = Response +RequestMixin.ResponseClass = Response __version__ = '1.2b2' diff --git a/webob/request.py b/webob/request.py index 107f8cb..bd54e68 100644 --- a/webob/request.py +++ b/webob/request.py @@ -46,6 +46,7 @@ from webob.descriptors import ( converter, converter_date, environ_getter, + environ_decoder, parse_auth, parse_int, parse_int_safe, @@ -56,7 +57,6 @@ from webob.descriptors import ( serialize_range, upath_property, deprecated_property, - environ_decoder, ) from webob.etag import ( @@ -316,15 +316,15 @@ class RequestMixin(object): you don't include any parameters in the value then existing parameters will be preserved. """ - return self._content_type_raw.split(';', 1)[0] + return self.decode_default(self._content_type_raw.split(';', 1)[0]) def _content_type__set(self, value=None): if value is not None: - value = str(value) + value = native_(value) if ';' not in value: content_type = self._content_type_raw if ';' in content_type: value += ';' + content_type.split(';', 1)[1] - self._content_type_raw = self.decode_default(value) + self._content_type_raw = value content_type = property(_content_type__get, _content_type__set, @@ -510,7 +510,7 @@ class RequestMixin(object): path = self.path_info if not path: return None - slashes = '' + slashes = self._empty while path.startswith(self._slash): slashes += self._slash path = path[1:] @@ -1300,6 +1300,7 @@ class BytesRequest(RequestMixin): _put_name = b'PUT' _slash = b'/' _questionmark = b'?' + _empty = b'' def encget(self, key, default=NoDefault, encattr=None): val = self.environ.get(key, default) @@ -1328,6 +1329,7 @@ class TextRequest(RequestMixin): _put_name = text_('PUT') _slash = text_('/') _questionmark = text_('?') + _empty = text_('') def encget(self, key, default=NoDefault, encattr=None): val = self.environ.get(key, default) @@ -1377,14 +1379,13 @@ class AdhocAttrMixin(object): raise AttributeError(attr) if PY3: # pragma: no cover - class Request(AdhocAttrMixin, TextRequest): - """ The default request implementation for Python 3""" BaseRequest = TextRequest else: - class Request(AdhocAttrMixin, BytesRequest): - """ The default request implementation for Python 2""" BaseRequest = BytesRequest +class Request(AdhocAttrMixin, BaseRequest): + """ The default request implementation """ + def environ_from_url(path): if SCHEME_RE.search(path): scheme, netloc, path, qs, fragment = urlparse.urlsplit(path) |
