diff options
| author | ianb <devnull@localhost> | 2005-04-22 03:18:20 +0000 |
|---|---|---|
| committer | ianb <devnull@localhost> | 2005-04-22 03:18:20 +0000 |
| commit | 36593a8d40cd1417d2927a78cdbe621090b6e8a5 (patch) | |
| tree | 74dc42b93bb512593869fd57f8be99c198d8c108 /paste/echo.py | |
| parent | 7752a3102fc8aa68ee7e349495bc2e9345c77c00 (diff) | |
| download | paste-36593a8d40cd1417d2927a78cdbe621090b6e8a5.tar.gz | |
Renamed package itself
Diffstat (limited to 'paste/echo.py')
| -rw-r--r-- | paste/echo.py | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/paste/echo.py b/paste/echo.py new file mode 100644 index 0000000..1a1c91f --- /dev/null +++ b/paste/echo.py @@ -0,0 +1,59 @@ +r"""\ +WSGI application + +Does things as requested. Takes variables: + +header.header-name=value, like + header.location=http://yahoo.com + +error=code, like + error=301 (temporary redirect) + error=assert (assertion error) + +environ=true, + display all the environmental variables, like + key=str(value)\n + +message=string + display string +""" + +import cgi +import httpexceptions + +def application(environ, start_response): + form = cgi.FieldStorage(fp=environ['wsgi.input'], + environ=environ, + keep_blank_values=True) + headers = {} + for key in form.keys(): + if key.startswith('header.'): + headers[key[len('header.'):]] = form[key].value + + if form.getvalue('error') and form['error'].value != 'iter': + if form['error'].value == 'assert': + assert 0, "I am asserting zero!" + raise httpexceptions.get_exception(int(form['error'].value))( + headers=headers) + + if form.getvalue('environ'): + write = start_response('200 OK', [('Content-type', 'text/plain')]) + items = environ.items() + items.sort() + return ['%s=%s\n' % (name, value) + for name, value in items] + + if form.has_key('message'): + write = start_response('200 OK', [('Content-type', 'text/plain')]) + write(form['message'].value) + return [] + + if form.getvalue('error') == 'iter': + return BadIter() + + write = start_response('200 OK', [('Content-type', 'text/html')]) + return ['hello world!'] + +class BadIter(object): + def __iter__(self): + assert 0, "I am assert zero in the iterator!" |
