summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcel Hellkamp <marc@gsites.de>2017-01-09 13:31:42 +0100
committerMarcel Hellkamp <marc@gsites.de>2017-01-09 13:31:42 +0100
commit6820404d60b302cde7de640d63041181caa0bf85 (patch)
tree59b6b8bc39ff8c844b2203281d13ac86d99ca60b
parent2c9c61995beaab39d660b4e00dfd962569325221 (diff)
downloadbottle-6820404d60b302cde7de640d63041181caa0bf85.tar.gz
Fix #923: TypeError WSGI response header value u'...' is not of type str
-rw-r--r--bottle.py2
-rwxr-xr-xtest/test_environ.py2
2 files changed, 3 insertions, 1 deletions
diff --git a/bottle.py b/bottle.py
index 4a1e7c9..1fa6b2c 100644
--- a/bottle.py
+++ b/bottle.py
@@ -1405,7 +1405,7 @@ def _hkey(key):
def _hval(value):
- value = value if isinstance(value, unicode) else str(value)
+ value = tonat(value)
if '\n' in value or '\r' in value or '\0' in value:
raise ValueError("Header value must not contain control characters: %r" % value)
return value
diff --git a/test/test_environ.py b/test/test_environ.py
index c37af51..3a9878a 100755
--- a/test/test_environ.py
+++ b/test/test_environ.py
@@ -667,6 +667,8 @@ class TestResponse(unittest.TestCase):
self.assertEqual('5', response['x-test'])
response['x-test'] = None
self.assertEqual('None', response['x-test'])
+ response['x-test'] = touni('瓶')
+ self.assertEqual(tonat(touni('瓶')), response['x-test'])
def test_prevent_control_characters_in_headers(self):
masks = '{}test', 'test{}', 'te{}st'