summaryrefslogtreecommitdiff
path: root/test/test_environ.py
diff options
context:
space:
mode:
authorMarcel Hellkamp <marc@gsites.de>2011-12-02 21:03:53 +0100
committerMarcel Hellkamp <marc@gsites.de>2011-12-02 21:03:53 +0100
commit0efd5bc664689c3d48d254a9bde0748fc7e4b0b7 (patch)
treee25aed115b160229aa161ba703fa24fdcce172cf /test/test_environ.py
parent773cc5f5d9c58b60961f23554291656053473ee1 (diff)
downloadbottle-0efd5bc664689c3d48d254a9bde0748fc7e4b0b7.tar.gz
fix: All test-cases now support 2.x and 3.x from the same source.
Diffstat (limited to 'test/test_environ.py')
-rwxr-xr-xtest/test_environ.py41
1 files changed, 21 insertions, 20 deletions
diff --git a/test/test_environ.py b/test/test_environ.py
index d0406ac..144ef4f 100755
--- a/test/test_environ.py
+++ b/test/test_environ.py
@@ -4,7 +4,7 @@
import unittest
import sys, os.path
import bottle
-from bottle import request, response, tob, tonat, touni, json_dumps
+from bottle import request, response, tob, tonat, touni, json_dumps, _e
import tools
import wsgiref.util
import threading
@@ -88,9 +88,9 @@ class TestRequest(unittest.TestCase):
e = {}
wsgiref.util.setup_testing_defaults(e)
request = BaseRequest(e)
- self.assertEqual(list(request), e.keys())
+ self.assertEqual(list(request), list(e.keys()))
self.assertEqual(len(request), len(e))
- for k, v in e.iteritems():
+ for k, v in e.items():
self.assertTrue(k in request)
self.assertEqual(request[k], v)
request[k] = 'test'
@@ -129,7 +129,7 @@ class TestRequest(unittest.TestCase):
t['a=a'] = {'a': 'a'}
t['a=a; b=b'] = {'a': 'a', 'b':'b'}
t['a=a; a=b'] = {'a': 'b'}
- for k, v in t.iteritems():
+ for k, v in t.items():
request = BaseRequest({'HTTP_COOKIE': k})
for n in v:
self.assertEqual(v[n], request.cookies[n])
@@ -147,7 +147,7 @@ class TestRequest(unittest.TestCase):
def test_post(self):
""" Environ: POST data """
- sq = u'a=a&a=1&b=b&c=&d'.encode('utf8')
+ sq = tob('a=a&a=1&b=b&c=&d')
e = {}
wsgiref.util.setup_testing_defaults(e)
e['wsgi.input'].write(sq)
@@ -165,7 +165,7 @@ class TestRequest(unittest.TestCase):
self.assertEqual('', request.POST['d'])
def test_bodypost(self):
- sq = u'foobar'.encode('utf8')
+ sq = tob('foobar')
e = {}
wsgiref.util.setup_testing_defaults(e)
e['wsgi.input'].write(sq)
@@ -177,7 +177,7 @@ class TestRequest(unittest.TestCase):
def test_body_noclose(self):
""" Test that the body file handler is not closed after request.POST """
- sq = u'a=a&a=1&b=b&c=&d'.encode('utf8')
+ sq = tob('a=a&a=1&b=b&c=&d')
e = {}
wsgiref.util.setup_testing_defaults(e)
e['wsgi.input'].write(sq)
@@ -206,33 +206,33 @@ class TestRequest(unittest.TestCase):
""" Environ: GET and POST should not leak into each other """
e = {}
wsgiref.util.setup_testing_defaults(e)
- e['wsgi.input'].write(u'b=b'.encode('utf8'))
+ e['wsgi.input'].write(tob('b=b'))
e['wsgi.input'].seek(0)
e['CONTENT_LENGTH'] = '3'
e['QUERY_STRING'] = 'a=a'
e['REQUEST_METHOD'] = "POST"
request = BaseRequest(e)
- self.assertEqual(['a'], request.GET.keys())
- self.assertEqual(['b'], request.POST.keys())
+ self.assertEqual(['a'], list(request.GET.keys()))
+ self.assertEqual(['b'], list(request.POST.keys()))
def test_body(self):
""" Environ: Request.body should behave like a file object factory """
e = {}
wsgiref.util.setup_testing_defaults(e)
- e['wsgi.input'].write(u'abc'.encode('utf8'))
+ e['wsgi.input'].write(tob('abc'))
e['wsgi.input'].seek(0)
e['CONTENT_LENGTH'] = str(3)
request = BaseRequest(e)
- self.assertEqual(u'abc'.encode('utf8'), request.body.read())
- self.assertEqual(u'abc'.encode('utf8'), request.body.read(3))
- self.assertEqual(u'abc'.encode('utf8'), request.body.readline())
- self.assertEqual(u'abc'.encode('utf8'), request.body.readline(3))
+ self.assertEqual(tob('abc'), request.body.read())
+ self.assertEqual(tob('abc'), request.body.read(3))
+ self.assertEqual(tob('abc'), request.body.readline())
+ self.assertEqual(tob('abc'), request.body.readline(3))
def test_bigbody(self):
""" Environ: Request.body should handle big uploads using files """
e = {}
wsgiref.util.setup_testing_defaults(e)
- e['wsgi.input'].write((u'x'*1024*1000).encode('utf8'))
+ e['wsgi.input'].write(tob('x')*1024*1000)
e['wsgi.input'].seek(0)
e['CONTENT_LENGTH'] = str(1024*1000)
request = BaseRequest(e)
@@ -246,7 +246,7 @@ class TestRequest(unittest.TestCase):
""" Environ: Request.body should truncate to Content-Length bytes """
e = {}
wsgiref.util.setup_testing_defaults(e)
- e['wsgi.input'].write((u'x'*1024).encode('utf8'))
+ e['wsgi.input'].write(tob('x')*1024)
e['wsgi.input'].seek(0)
e['CONTENT_LENGTH'] = '42'
request = BaseRequest(e)
@@ -258,7 +258,7 @@ class TestRequest(unittest.TestCase):
def test_multipart(self):
""" Environ: POST (multipart files and multible values per key) """
fields = [('field1','value1'), ('field2','value2'), ('field2','value3')]
- files = [('file1','filename1.txt','content1'), ('file2','filename2.py',u'ä\nö\rü')]
+ files = [('file1','filename1.txt','content1'), ('file2','filename2.py',touni('ä\nö\rü'))]
e = tools.multipart_environ(fields=fields, files=files)
request = BaseRequest(e)
# File content
@@ -276,7 +276,7 @@ class TestRequest(unittest.TestCase):
x = request.POST['file2'].file.read()
if (3,2,0) > sys.version_info >= (3,0,0):
x = x.encode('ISO-8859-1')
- self.assertEqual(u'ä\nö\rü'.encode('utf8'), x)
+ self.assertEqual(tob('ä\nö\rü'), x)
# No file
self.assertTrue('file3' not in request.POST)
self.assertTrue('file3' not in request.files)
@@ -545,7 +545,8 @@ class TestRedirect(unittest.TestCase):
request.bind(env)
try:
bottle.redirect(target, **(query or {}))
- except bottle.HTTPResponse, r:
+ except bottle.HTTPResponse:
+ r = _e()
self.assertEqual(status, r.status)
self.assertTrue(r.headers)
self.assertEqual(result, r.headers['Location'])