Merge "s3 compat tests: sanitize object listings"
This commit is contained in:
@@ -41,6 +41,14 @@ class TestObjectVersioning(BaseS3TestCase):
|
|||||||
|
|
||||||
maxDiff = None
|
maxDiff = None
|
||||||
|
|
||||||
|
def _sanitize_obj_listing(self, obj):
|
||||||
|
# there's some object listing parameters that are not deterministic
|
||||||
|
obj.pop('LastModified')
|
||||||
|
obj.pop('Owner', None)
|
||||||
|
# there's some object listing parameters that Swift doesn't return,
|
||||||
|
obj.pop('ChecksumAlgorithm', None)
|
||||||
|
obj.pop('ChecksumType', None)
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
self.client = self.get_s3_client(1)
|
self.client = self.get_s3_client(1)
|
||||||
self.bucket_name = self.create_name('versioning')
|
self.bucket_name = self.create_name('versioning')
|
||||||
@@ -132,7 +140,7 @@ class TestObjectVersioning(BaseS3TestCase):
|
|||||||
resp = self.client.list_objects_v2(Bucket=self.bucket_name)
|
resp = self.client.list_objects_v2(Bucket=self.bucket_name)
|
||||||
objs = resp.get('Contents', [])
|
objs = resp.get('Contents', [])
|
||||||
for obj in objs:
|
for obj in objs:
|
||||||
obj.pop('LastModified')
|
self._sanitize_obj_listing(obj)
|
||||||
self.assertEqual([{
|
self.assertEqual([{
|
||||||
'ETag': '"%s"' % obj_etag,
|
'ETag': '"%s"' % obj_etag,
|
||||||
'Key': obj_name,
|
'Key': obj_name,
|
||||||
@@ -144,8 +152,7 @@ class TestObjectVersioning(BaseS3TestCase):
|
|||||||
resp = self.client.list_object_versions(Bucket=self.bucket_name)
|
resp = self.client.list_object_versions(Bucket=self.bucket_name)
|
||||||
objs = resp.get('Versions', [])
|
objs = resp.get('Versions', [])
|
||||||
for obj in objs:
|
for obj in objs:
|
||||||
obj.pop('LastModified')
|
self._sanitize_obj_listing(obj)
|
||||||
obj.pop('Owner')
|
|
||||||
obj.pop('VersionId')
|
obj.pop('VersionId')
|
||||||
self.assertEqual([{
|
self.assertEqual([{
|
||||||
'ETag': '"%s"' % obj_etag,
|
'ETag': '"%s"' % obj_etag,
|
||||||
@@ -165,7 +172,7 @@ class TestObjectVersioning(BaseS3TestCase):
|
|||||||
resp = self.client.list_objects_v2(Bucket=self.bucket_name)
|
resp = self.client.list_objects_v2(Bucket=self.bucket_name)
|
||||||
objs = resp.get('Contents', [])
|
objs = resp.get('Contents', [])
|
||||||
for obj in objs:
|
for obj in objs:
|
||||||
obj.pop('LastModified')
|
self._sanitize_obj_listing(obj)
|
||||||
self.assertEqual([{
|
self.assertEqual([{
|
||||||
'ETag': '"%s"' % new_obj_etag,
|
'ETag': '"%s"' % new_obj_etag,
|
||||||
'Key': obj_name,
|
'Key': obj_name,
|
||||||
@@ -177,8 +184,7 @@ class TestObjectVersioning(BaseS3TestCase):
|
|||||||
resp = self.client.list_object_versions(Bucket=self.bucket_name)
|
resp = self.client.list_object_versions(Bucket=self.bucket_name)
|
||||||
objs = resp.get('Versions', [])
|
objs = resp.get('Versions', [])
|
||||||
for obj in objs:
|
for obj in objs:
|
||||||
obj.pop('LastModified')
|
self._sanitize_obj_listing(obj)
|
||||||
obj.pop('Owner')
|
|
||||||
obj.pop('VersionId')
|
obj.pop('VersionId')
|
||||||
self.assertEqual([{
|
self.assertEqual([{
|
||||||
'ETag': '"%s"' % new_obj_etag,
|
'ETag': '"%s"' % new_obj_etag,
|
||||||
@@ -207,7 +213,7 @@ class TestObjectVersioning(BaseS3TestCase):
|
|||||||
resp = self.client.list_objects_v2(Bucket=self.bucket_name)
|
resp = self.client.list_objects_v2(Bucket=self.bucket_name)
|
||||||
objs = resp.get('Contents', [])
|
objs = resp.get('Contents', [])
|
||||||
for obj in objs:
|
for obj in objs:
|
||||||
obj.pop('LastModified')
|
self._sanitize_obj_listing(obj)
|
||||||
self.assertEqual([{
|
self.assertEqual([{
|
||||||
'ETag': '"%s"' % etags[0],
|
'ETag': '"%s"' % etags[0],
|
||||||
'Key': obj_name,
|
'Key': obj_name,
|
||||||
@@ -220,8 +226,7 @@ class TestObjectVersioning(BaseS3TestCase):
|
|||||||
objs = resp.get('Versions', [])
|
objs = resp.get('Versions', [])
|
||||||
versions = []
|
versions = []
|
||||||
for obj in objs:
|
for obj in objs:
|
||||||
obj.pop('LastModified')
|
self._sanitize_obj_listing(obj)
|
||||||
obj.pop('Owner')
|
|
||||||
versions.append(obj.pop('VersionId'))
|
versions.append(obj.pop('VersionId'))
|
||||||
self.assertEqual([{
|
self.assertEqual([{
|
||||||
'ETag': '"%s"' % etags[0],
|
'ETag': '"%s"' % etags[0],
|
||||||
@@ -252,8 +257,7 @@ class TestObjectVersioning(BaseS3TestCase):
|
|||||||
resp = self.client.list_object_versions(Bucket=self.bucket_name)
|
resp = self.client.list_object_versions(Bucket=self.bucket_name)
|
||||||
objs = resp.get('Versions', [])
|
objs = resp.get('Versions', [])
|
||||||
for obj in objs:
|
for obj in objs:
|
||||||
obj.pop('LastModified')
|
self._sanitize_obj_listing(obj)
|
||||||
obj.pop('Owner')
|
|
||||||
obj.pop('VersionId')
|
obj.pop('VersionId')
|
||||||
self.assertEqual([{
|
self.assertEqual([{
|
||||||
'ETag': '"%s"' % etags[0],
|
'ETag': '"%s"' % etags[0],
|
||||||
@@ -273,7 +277,7 @@ class TestObjectVersioning(BaseS3TestCase):
|
|||||||
resp = self.client.list_objects_v2(Bucket=self.bucket_name)
|
resp = self.client.list_objects_v2(Bucket=self.bucket_name)
|
||||||
objs = resp.get('Contents', [])
|
objs = resp.get('Contents', [])
|
||||||
for obj in objs:
|
for obj in objs:
|
||||||
obj.pop('LastModified')
|
self._sanitize_obj_listing(obj)
|
||||||
self.assertEqual([{
|
self.assertEqual([{
|
||||||
'ETag': '"%s"' % etags[0],
|
'ETag': '"%s"' % etags[0],
|
||||||
'Key': obj_name,
|
'Key': obj_name,
|
||||||
@@ -291,8 +295,7 @@ class TestObjectVersioning(BaseS3TestCase):
|
|||||||
resp = self.client.list_object_versions(Bucket=self.bucket_name)
|
resp = self.client.list_object_versions(Bucket=self.bucket_name)
|
||||||
objs = resp.get('Versions', [])
|
objs = resp.get('Versions', [])
|
||||||
for obj in objs:
|
for obj in objs:
|
||||||
obj.pop('LastModified')
|
self._sanitize_obj_listing(obj)
|
||||||
obj.pop('Owner')
|
|
||||||
obj.pop('VersionId')
|
obj.pop('VersionId')
|
||||||
self.assertEqual([{
|
self.assertEqual([{
|
||||||
'ETag': '"%s"' % etags[2],
|
'ETag': '"%s"' % etags[2],
|
||||||
@@ -306,7 +309,7 @@ class TestObjectVersioning(BaseS3TestCase):
|
|||||||
resp = self.client.list_objects_v2(Bucket=self.bucket_name)
|
resp = self.client.list_objects_v2(Bucket=self.bucket_name)
|
||||||
objs = resp.get('Contents', [])
|
objs = resp.get('Contents', [])
|
||||||
for obj in objs:
|
for obj in objs:
|
||||||
obj.pop('LastModified')
|
self._sanitize_obj_listing(obj)
|
||||||
self.assertEqual([{
|
self.assertEqual([{
|
||||||
'ETag': '"%s"' % etags[2],
|
'ETag': '"%s"' % etags[2],
|
||||||
'Key': obj_name,
|
'Key': obj_name,
|
||||||
@@ -335,8 +338,7 @@ class TestObjectVersioning(BaseS3TestCase):
|
|||||||
objs = resp.get('Versions', [])
|
objs = resp.get('Versions', [])
|
||||||
versions = []
|
versions = []
|
||||||
for obj in objs:
|
for obj in objs:
|
||||||
obj.pop('LastModified')
|
self._sanitize_obj_listing(obj)
|
||||||
obj.pop('Owner')
|
|
||||||
versions.append(obj.pop('VersionId'))
|
versions.append(obj.pop('VersionId'))
|
||||||
self.assertEqual([{
|
self.assertEqual([{
|
||||||
'ETag': '"%s"' % etag,
|
'ETag': '"%s"' % etag,
|
||||||
@@ -349,8 +351,7 @@ class TestObjectVersioning(BaseS3TestCase):
|
|||||||
delete_markers = resp.get('DeleteMarkers', [])
|
delete_markers = resp.get('DeleteMarkers', [])
|
||||||
marker_versions = []
|
marker_versions = []
|
||||||
for marker in delete_markers:
|
for marker in delete_markers:
|
||||||
marker.pop('LastModified')
|
self._sanitize_obj_listing(marker)
|
||||||
marker.pop('Owner')
|
|
||||||
marker_versions.append(marker.pop('VersionId'))
|
marker_versions.append(marker.pop('VersionId'))
|
||||||
self.assertEqual([{
|
self.assertEqual([{
|
||||||
'Key': obj_name,
|
'Key': obj_name,
|
||||||
@@ -398,8 +399,7 @@ class TestObjectVersioning(BaseS3TestCase):
|
|||||||
resp = self.client.list_object_versions(Bucket=self.bucket_name)
|
resp = self.client.list_object_versions(Bucket=self.bucket_name)
|
||||||
delete_markers = resp.get('DeleteMarkers', [])
|
delete_markers = resp.get('DeleteMarkers', [])
|
||||||
for marker in delete_markers:
|
for marker in delete_markers:
|
||||||
marker.pop('LastModified')
|
self._sanitize_obj_listing(marker)
|
||||||
marker.pop('Owner')
|
|
||||||
self.assertEqual([{
|
self.assertEqual([{
|
||||||
'Key': obj_name,
|
'Key': obj_name,
|
||||||
'IsLatest': True,
|
'IsLatest': True,
|
||||||
@@ -437,8 +437,7 @@ class TestObjectVersioning(BaseS3TestCase):
|
|||||||
objs = resp.get('Versions', [])
|
objs = resp.get('Versions', [])
|
||||||
versions = []
|
versions = []
|
||||||
for obj in objs:
|
for obj in objs:
|
||||||
obj.pop('LastModified')
|
self._sanitize_obj_listing(obj)
|
||||||
obj.pop('Owner')
|
|
||||||
versions.append(obj.pop('VersionId'))
|
versions.append(obj.pop('VersionId'))
|
||||||
self.assertEqual([{
|
self.assertEqual([{
|
||||||
'ETag': obj_etag,
|
'ETag': obj_etag,
|
||||||
@@ -476,8 +475,7 @@ class TestObjectVersioning(BaseS3TestCase):
|
|||||||
|
|
||||||
markers = resp.get('DeleteMarkers', [])
|
markers = resp.get('DeleteMarkers', [])
|
||||||
for marker in markers:
|
for marker in markers:
|
||||||
marker.pop('LastModified')
|
self._sanitize_obj_listing(marker)
|
||||||
marker.pop('Owner')
|
|
||||||
self.assertEqual([{
|
self.assertEqual([{
|
||||||
'IsLatest': True,
|
'IsLatest': True,
|
||||||
'Key': obj_name,
|
'Key': obj_name,
|
||||||
@@ -498,8 +496,7 @@ class TestObjectVersioning(BaseS3TestCase):
|
|||||||
objs = resp.get('Versions', [])
|
objs = resp.get('Versions', [])
|
||||||
versions = []
|
versions = []
|
||||||
for obj in objs:
|
for obj in objs:
|
||||||
obj.pop('LastModified')
|
self._sanitize_obj_listing(obj)
|
||||||
obj.pop('Owner')
|
|
||||||
versions.append(obj.pop('VersionId'))
|
versions.append(obj.pop('VersionId'))
|
||||||
self.assertEqual([{
|
self.assertEqual([{
|
||||||
'ETag': '"%s"' % etags[0],
|
'ETag': '"%s"' % etags[0],
|
||||||
@@ -672,15 +669,15 @@ class TestObjectVersioning(BaseS3TestCase):
|
|||||||
resp = self.client.list_objects(Bucket=self.bucket_name)
|
resp = self.client.list_objects(Bucket=self.bucket_name)
|
||||||
objs = resp.get('Contents', [])
|
objs = resp.get('Contents', [])
|
||||||
for obj in objs:
|
for obj in objs:
|
||||||
obj.pop('LastModified')
|
owner = obj.pop('Owner')
|
||||||
|
self._sanitize_obj_listing(obj)
|
||||||
# one difference seems to be the Owner key
|
# one difference seems to be the Owner key
|
||||||
self.assertEqual({'DisplayName', 'ID'},
|
self.assertEqual({'DisplayName', 'ID'}, set(owner.keys()))
|
||||||
set(obj.pop('Owner').keys()))
|
|
||||||
self.assertEqual(expected, objs)
|
self.assertEqual(expected, objs)
|
||||||
resp = self.client.list_objects_v2(Bucket=self.bucket_name)
|
resp = self.client.list_objects_v2(Bucket=self.bucket_name)
|
||||||
objs = resp.get('Contents', [])
|
objs = resp.get('Contents', [])
|
||||||
for obj in objs:
|
for obj in objs:
|
||||||
obj.pop('LastModified')
|
self._sanitize_obj_listing(obj)
|
||||||
self.assertEqual(expected, objs)
|
self.assertEqual(expected, objs)
|
||||||
|
|
||||||
# versioned listings has something for everyone
|
# versioned listings has something for everyone
|
||||||
@@ -701,8 +698,7 @@ class TestObjectVersioning(BaseS3TestCase):
|
|||||||
objs = resp.get('Versions', [])
|
objs = resp.get('Versions', [])
|
||||||
versions = []
|
versions = []
|
||||||
for obj in objs:
|
for obj in objs:
|
||||||
obj.pop('LastModified')
|
self._sanitize_obj_listing(obj)
|
||||||
obj.pop('Owner')
|
|
||||||
versions.append(obj.pop('VersionId'))
|
versions.append(obj.pop('VersionId'))
|
||||||
self.assertEqual(expected, objs)
|
self.assertEqual(expected, objs)
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user