0001from webob import Request
0002
0003__all__ = ['debug_app']
0004
0005def debug_app(environ, start_response):
0006    req = Request(environ)
0007    if 'error' in req.GET:
0008        raise Exception('Exception requested')
0009    status = req.GET.get('status', '200 OK')
0010    parts = []
0011    for name, value in sorted(environ.items()):
0012        if name.upper() != name:
0013            value = repr(value)
0014        parts.append('%s: %s\n' % (name, value))
0015    req_body = req.body
0016    if req_body:
0017        parts.append('-- Body ----------\n')
0018        parts.append(req_body)
0019    body = ''.join(parts)
0020    headers = [
0021        ('Content-Type', 'text/plain'),
0022        ('Content-Length', str(len(body)))]
0023    for name, value in req.GET.items():
0024        if name.startswith('header-'):
0025            header_name = name[len('header-'):]
0026            headers.append((header_name, value))
0027    start_response(status, headers)
0028    return [body]
0029
0030def make_debug_app(global_conf):
0031    """
0032    An application that displays the request environment, and does
0033    nothing else (useful for debugging and test purposes).
0034    """
0035    return debug_app