From 5b5b4992ffdc3c3dc3b28c004f211288fb6affcf Mon Sep 17 00:00:00 2001 From: Helmut Grohne Date: Sat, 21 Apr 2007 20:48:43 +0200 Subject: added some assertions --- wsgitools/filters.py | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'wsgitools/filters.py') 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 -- cgit v1.2.3