summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2016-02-27 01:44:38 +0000
committerGerrit Code Review <review@openstack.org>2016-02-27 01:44:38 +0000
commitba2ff4a6ea93314e8c519f53ae97d8cb2f31928e (patch)
tree13504c80f96a806925ff923a6775ac46127c2ea1
parent46d817828082105a69d4da53fef2f2fbefc54809 (diff)
parentaa0edd00966237163451fc44cda2c593a5215cbe (diff)
downloadpython-swiftclient-ba2ff4a6ea93314e8c519f53ae97d8cb2f31928e.tar.gz
Merge "Force header keys/values to bytes/unicode before coercing to unicode"
-rw-r--r--swiftclient/client.py2
-rw-r--r--tests/unit/test_swiftclient.py7
2 files changed, 7 insertions, 2 deletions
diff --git a/swiftclient/client.py b/swiftclient/client.py
index f65d4bb..56f236c 100644
--- a/swiftclient/client.py
+++ b/swiftclient/client.py
@@ -169,6 +169,8 @@ def http_log(args, kwargs, resp, body):
def parse_header_string(data):
+ if not isinstance(data, (six.text_type, six.binary_type)):
+ data = str(data)
if six.PY2:
if isinstance(data, six.text_type):
# Under Python2 requests only returns binary_type, but if we get
diff --git a/tests/unit/test_swiftclient.py b/tests/unit/test_swiftclient.py
index 331e804..c3074fe 100644
--- a/tests/unit/test_swiftclient.py
+++ b/tests/unit/test_swiftclient.py
@@ -1203,13 +1203,16 @@ class TestPostObject(MockHttpTest):
def test_ok(self):
c.http_connection = self.fake_http_connection(200)
+ delete_at = 2.1 # not str! we don't know what other devs will use!
args = ('http://www.test.com', 'token', 'container', 'obj',
- {'X-Object-Meta-Test': 'mymeta'})
+ {'X-Object-Meta-Test': 'mymeta',
+ 'X-Delete-At': delete_at})
c.post_object(*args)
self.assertRequests([
('POST', '/container/obj', '', {
'x-auth-token': 'token',
- 'X-Object-Meta-Test': 'mymeta'}),
+ 'X-Object-Meta-Test': 'mymeta',
+ 'X-Delete-At': delete_at}),
])
def test_unicode_ok(self):