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