summaryrefslogtreecommitdiff
path: root/webtest/debugapp.py
diff options
context:
space:
mode:
authorGael Pasgrimaud <gael@gawel.org>2012-12-05 13:19:05 +0100
committerGael Pasgrimaud <gael@gawel.org>2012-12-05 13:19:05 +0100
commit26655c765c3d11e1e4e09930f93fde953dea25e2 (patch)
tree73036ac592fb3f21d8ce1f60b7fe8293405ce1f4 /webtest/debugapp.py
parent4b8c15c08d48843cb64ff7ac0f0c0870c246890a (diff)
downloadwebtest-26655c765c3d11e1e4e09930f93fde953dea25e2.tar.gz
remove some ugly stuff by using future's literal and six. this mean we do no longer support python2.5
Diffstat (limited to 'webtest/debugapp.py')
-rw-r--r--webtest/debugapp.py32
1 files changed, 20 insertions, 12 deletions
diff --git a/webtest/debugapp.py b/webtest/debugapp.py
index b3321c5..9e1ee99 100644
--- a/webtest/debugapp.py
+++ b/webtest/debugapp.py
@@ -1,5 +1,6 @@
from webob import Request, Response
-from webtest.compat import to_bytes
+import six
+
__all__ = ['debug_app']
@@ -8,7 +9,7 @@ def debug_app(environ, start_response):
req = Request(environ)
if req.path_info == '/form.html' and req.method == 'GET':
resp = Response(content_type='text/html')
- resp.body = to_bytes('''<html><body>
+ resp.body = six.b('''<html><body>
<form action="/form-submit" method="POST">
<input type="text" name="name">
<input type="submit" name="submit" value="Submit!">
@@ -23,33 +24,40 @@ def debug_app(environ, start_response):
for name, value in sorted(environ.items()):
if name.upper() != name:
value = repr(value)
- parts.append('%s: %s\n' % (name, value))
+ parts.append(str('%s: %s\n') % (name, value))
if req.content_length:
req_body = req.body
else:
req_body = ''
if req_body:
- parts.append(to_bytes('-- Body ----------\n'))
+ parts.append('-- Body ----------\n')
+ if not isinstance(req_body, six.string_types):
+ req_body = req_body.decode('ascii')
parts.append(req_body)
- body = to_bytes('').join([to_bytes(p) for p in parts])
+ body = ''.join(parts)
if status[:3] in ('204', '304') and not req_body:
- body = to_bytes('')
+ body = ''
headers = [
- ('Content-Type', 'text/plain'),
+ ('Content-Type', str('text/plain')),
('Content-Length', str(len(body)))]
for name, value in req.GET.items():
if name.startswith('header-'):
header_name = name[len('header-'):]
- headers.append((header_name, value))
+ headers.append((header_name, str(value)))
- start_response(str(status), headers)
- if req.method == 'HEAD':
- return [to_bytes('')]
- return [body]
+ resp = Response()
+ resp.status = status
+ resp.headers.update(headers)
+ if req.method != 'HEAD':
+ if isinstance(body, six.text_type):
+ resp.body = body.encode('utf8')
+ else:
+ resp.body = body
+ return resp(environ, start_response)
def make_debug_app(global_conf):