summaryrefslogtreecommitdiff
path: root/wsgitools/filters.py
diff options
context:
space:
mode:
authorHelmut Grohne <helmut@subdivi.de>2007-04-21 20:48:43 +0200
committerHelmut Grohne <helmut@subdivi.de>2007-04-21 20:48:43 +0200
commit5b5b4992ffdc3c3dc3b28c004f211288fb6affcf (patch)
tree8b2b1ac20aaea7d988ea7189cbf31d8617c66e61 /wsgitools/filters.py
parent5835a547893a7e89ef19e1e4e0b270b78c814a28 (diff)
downloadwsgitools-5b5b4992ffdc3c3dc3b28c004f211288fb6affcf.tar.gz
added some assertions
Diffstat (limited to 'wsgitools/filters.py')
-rw-r--r--wsgitools/filters.py9
1 files changed, 9 insertions, 0 deletions
diff --git a/wsgitools/filters.py b/wsgitools/filters.py
index 0cca3b4..7f83bd9 100644
--- a/wsgitools/filters.py
+++ b/wsgitools/filters.py
@@ -119,10 +119,13 @@ class WSGIFilterMiddleware:
self.filterclass = filterclass
def __call__(self, environ, start_response):
"""wsgi interface"""
+ assert isinstance(environ, dict)
filter = self.filterclass()
environ = filter.filter_environ(environ)
def modified_start_response(status, headers, exc_info=None):
+ assert isinstance(status, str)
+ assert isinstance(headers, list)
exc_info = filter.filter_exc_info(exc_info)
status = filter.filter_status(status)
headers = (filter.filter_header(h, v) for h, v in headers)
@@ -134,6 +137,7 @@ class WSGIFilterMiddleware:
return modified_write
ret = self.app(environ, modified_start_response)
+ assert hasattr(ret, "__iter__")
def modified_close():
filter.handle_close()
@@ -162,11 +166,13 @@ class RequestLogWSGIFilter(BaseWSGIFilter):
log has to be a file-like object."""
return lambda:cls(log)
def __init__(self, log=sys.stdout):
+ assert hasattr(log, "write")
self.log = log
self.time = time.strftime("%d/%b/%Y:%T %z")
self.length = 0
def filter_environ(self, environ):
"""BaseWSGIFilter interface"""
+ assert isinstance(environ, dict)
self.remote = environ.get("REMOTE_ADDR", "?")
self.user = environ.get("REMOTE_USER", "-")
self.reqmethod = environ["REQUEST_METHOD"]
@@ -177,6 +183,7 @@ class RequestLogWSGIFilter(BaseWSGIFilter):
return environ
def filter_status(self, status):
"""BaseWSGIFilter interface"""
+ assert isinstance(status, str)
self.status = status.split()[0]
return status
def filter_data(self, data):
@@ -250,6 +257,7 @@ class GzipWSGIFilter(BaseWSGIFilter):
self.gzip = None
def filter_environ(self, environ):
"""BaseWSGIFilter interface"""
+ assert isinstance(environ, dict)
if "HTTP_ACCEPT_ENCODING" in environ:
acceptenc = environ["HTTP_ACCEPT_ENCODING"].split(',')
acceptenc = map(str.strip, acceptenc)
@@ -260,6 +268,7 @@ class GzipWSGIFilter(BaseWSGIFilter):
return environ
def filter_headers(self, headers):
"""BaseWSGIFilter interface"""
+ assert isinstance(headers, list)
if self.compress:
headers.append(("Content-encoding", "gzip"))
return headers