diff options
author | Jenkins <jenkins@review.openstack.org> | 2013-12-07 10:12:08 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2013-12-07 10:12:08 +0000 |
commit | b0f794800ce3545d2295caf79cb2d9badd4676dc (patch) | |
tree | f79762f28a3bf2a028e7a3ea148a64a58df29172 | |
parent | e100fd28ab9ea58100bc972750889ec434ad4e9f (diff) | |
parent | 983988093f3848671cb27b3c1956e4ca62087dff (diff) | |
download | python-swiftclient-b0f794800ce3545d2295caf79cb2d9badd4676dc.tar.gz |
Merge "Don't crash when header is value of None"
-rw-r--r-- | swiftclient/client.py | 4 | ||||
-rw-r--r-- | tests/test_swiftclient.py | 5 |
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 |