summaryrefslogtreecommitdiff
path: root/test/functional/test_slo.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/functional/test_slo.py')
-rw-r--r--test/functional/test_slo.py31
1 files changed, 19 insertions, 12 deletions
diff --git a/test/functional/test_slo.py b/test/functional/test_slo.py
index c055f7bbd..8003a2d70 100644
--- a/test/functional/test_slo.py
+++ b/test/functional/test_slo.py
@@ -23,6 +23,8 @@ from copy import deepcopy
import six
+from swift.common.swob import normalize_etag
+
import test.functional as tf
from test.functional import cluster_info, SkipTest
from test.functional.tests import Utils, Base, Base2, BaseEnv
@@ -299,8 +301,14 @@ class TestSlo(Base):
# a POST.
file_item.initialize(parms={'multipart-manifest': 'get'})
manifest_etag = file_item.etag
- self.assertFalse(manifest_etag.startswith('"'))
- self.assertFalse(manifest_etag.endswith('"'))
+ if tf.cluster_info.get('etag_quoter', {}).get('enable_by_default'):
+ self.assertTrue(manifest_etag.startswith('"'))
+ self.assertTrue(manifest_etag.endswith('"'))
+ # ...but in the listing, it'll be stripped
+ manifest_etag = manifest_etag[1:-1]
+ else:
+ self.assertFalse(manifest_etag.startswith('"'))
+ self.assertFalse(manifest_etag.endswith('"'))
file_item.initialize()
slo_etag = file_item.etag
@@ -715,6 +723,8 @@ class TestSlo(Base):
source_contents = source.read(parms={'multipart-manifest': 'get'})
source_json = json.loads(source_contents)
manifest_etag = hashlib.md5(source_contents).hexdigest()
+ if tf.cluster_info.get('etag_quoter', {}).get('enable_by_default'):
+ manifest_etag = '"%s"' % manifest_etag
self.assertEqual(manifest_etag, source.etag)
source.initialize()
@@ -752,14 +762,14 @@ class TestSlo(Base):
actual = names['manifest-abcde']
self.assertEqual(4 * 1024 * 1024 + 1, actual['bytes'])
self.assertEqual('application/octet-stream', actual['content_type'])
- self.assertEqual(manifest_etag, actual['hash'])
+ self.assertEqual(normalize_etag(manifest_etag), actual['hash'])
self.assertEqual(slo_etag, actual['slo_etag'])
self.assertIn('copied-abcde-manifest-only', names)
actual = names['copied-abcde-manifest-only']
self.assertEqual(4 * 1024 * 1024 + 1, actual['bytes'])
self.assertEqual('application/octet-stream', actual['content_type'])
- self.assertEqual(manifest_etag, actual['hash'])
+ self.assertEqual(normalize_etag(manifest_etag), actual['hash'])
self.assertEqual(slo_etag, actual['slo_etag'])
# Test copy manifest including data segments
@@ -789,6 +799,8 @@ class TestSlo(Base):
source_contents = source.read(parms={'multipart-manifest': 'get'})
source_json = json.loads(source_contents)
manifest_etag = hashlib.md5(source_contents).hexdigest()
+ if tf.cluster_info.get('etag_quoter', {}).get('enable_by_default'):
+ manifest_etag = '"%s"' % manifest_etag
self.assertEqual(manifest_etag, source.etag)
source.initialize()
@@ -831,14 +843,14 @@ class TestSlo(Base):
self.assertEqual(4 * 1024 * 1024 + 1, actual['bytes'])
self.assertEqual('application/octet-stream', actual['content_type'])
# the container listing should have the etag of the manifest contents
- self.assertEqual(manifest_etag, actual['hash'])
+ self.assertEqual(normalize_etag(manifest_etag), actual['hash'])
self.assertEqual(slo_etag, actual['slo_etag'])
self.assertIn('copied-abcde-manifest-only', names)
actual = names['copied-abcde-manifest-only']
self.assertEqual(4 * 1024 * 1024 + 1, actual['bytes'])
self.assertEqual('image/jpeg', actual['content_type'])
- self.assertEqual(manifest_etag, actual['hash'])
+ self.assertEqual(normalize_etag(manifest_etag), actual['hash'])
self.assertEqual(slo_etag, actual['slo_etag'])
def test_slo_copy_the_manifest_account(self):
@@ -1098,12 +1110,7 @@ class TestSlo(Base):
manifest = self.env.container.file("manifest-db")
got_body = manifest.read(parms={'multipart-manifest': 'get',
'format': 'raw'})
- body_md5 = hashlib.md5(got_body).hexdigest()
- headers = dict(
- (h.lower(), v)
- for h, v in manifest.conn.response.getheaders())
- self.assertIn('etag', headers)
- self.assertEqual(headers['etag'], body_md5)
+ self.assert_etag(hashlib.md5(got_body).hexdigest())
# raw format should have the actual manifest object content-type
self.assertEqual('application/octet-stream', manifest.content_type)