summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2017-06-22 01:13:25 +0000
committerGerrit Code Review <review@openstack.org>2017-06-22 01:13:26 +0000
commit1d57403668815ab8cef9d6598c06bf1c7e5355c0 (patch)
tree0989cccc681be96c3241fbab740edc771c272f8f
parentbc3171cfacf64a735a3b488828527e65d3e86e43 (diff)
parent527f2ff687faa120659cfefd82b8db26ddbfeafa (diff)
downloadpython-swiftclient-1d57403668815ab8cef9d6598c06bf1c7e5355c0.tar.gz
Merge "Skip checksum validation on partial downloads"
-rw-r--r--swiftclient/service.py1
-rw-r--r--tests/unit/test_service.py10
2 files changed, 11 insertions, 0 deletions
diff --git a/swiftclient/service.py b/swiftclient/service.py
index 65e2436..b9b843e 100644
--- a/swiftclient/service.py
+++ b/swiftclient/service.py
@@ -387,6 +387,7 @@ class _SwiftReader(object):
# Some headers indicate the MD5 of the response
# definitely *won't* match the ETag
bad_md5_headers = set([
+ 'content-range',
'x-object-manifest',
'x-static-large-object',
])
diff --git a/tests/unit/test_service.py b/tests/unit/test_service.py
index 6dabd12..b759e6b 100644
--- a/tests/unit/test_service.py
+++ b/tests/unit/test_service.py
@@ -141,6 +141,16 @@ class TestSwiftReader(unittest.TestCase):
self.assertFalse(sr._expected_md5)
self.assertIsNone(sr._actual_md5)
+ def test_create_with_content_range_header(self):
+ # md5 should not be initialized if large object headers are present
+ sr = self.sr('path', 'body', {'content-range': 'bytes 0-3/10',
+ 'etag': '"%s"' % ('0' * 32)})
+ self.assertEqual(sr._path, 'path')
+ self.assertEqual(sr._body, 'body')
+ self.assertIsNone(sr._content_length)
+ self.assertFalse(sr._expected_md5)
+ self.assertIsNone(sr._actual_md5)
+
def test_create_with_ignore_checksum(self):
# md5 should not be initialized if checksum is False
sr = self.sr('path', 'body', {}, False)