summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2013-12-07 10:12:08 +0000
committerGerrit Code Review <review@openstack.org>2013-12-07 10:12:08 +0000
commitb0f794800ce3545d2295caf79cb2d9badd4676dc (patch)
treef79762f28a3bf2a028e7a3ea148a64a58df29172
parente100fd28ab9ea58100bc972750889ec434ad4e9f (diff)
parent983988093f3848671cb27b3c1956e4ca62087dff (diff)
downloadpython-swiftclient-b0f794800ce3545d2295caf79cb2d9badd4676dc.tar.gz
Merge "Don't crash when header is value of None"
-rw-r--r--swiftclient/client.py4
-rw-r--r--tests/test_swiftclient.py5
2 files changed, 8 insertions, 1 deletions
diff --git a/swiftclient/client.py b/swiftclient/client.py
index 1653b04..8dbbaee 100644
--- a/swiftclient/client.py
+++ b/swiftclient/client.py
@@ -97,7 +97,9 @@ def quote(value, safe='/'):
def validate_headers(headers):
if headers:
- for key, value in headers.iteritems():
+ for key, raw_value in headers.iteritems():
+ value = str(encode_utf8(raw_value))
+
if '\n' in value:
raise InvalidHeadersException("%r header contained a "
"newline" % key)
diff --git a/tests/test_swiftclient.py b/tests/test_swiftclient.py
index 2387038..390a40e 100644
--- a/tests/test_swiftclient.py
+++ b/tests/test_swiftclient.py
@@ -190,6 +190,11 @@ class TestHttpHelpers(MockHttpTest):
self.assertRaises(c.InvalidHeadersException, c.validate_headers,
headers)
+ def test_validate_headers_with_other_than_str(self):
+ for t in (None, 1, 1.0, 1L, u"A"):
+ self.assertEqual(c.validate_headers({'key': t}),
+ None)
+
# TODO: following tests are placeholders, need more tests, better coverage