diff options
Diffstat (limited to 'test/functional/test_object_versioning.py')
-rw-r--r-- | test/functional/test_object_versioning.py | 93 |
1 files changed, 47 insertions, 46 deletions
diff --git a/test/functional/test_object_versioning.py b/test/functional/test_object_versioning.py index d7db187c0..a6ac9027d 100644 --- a/test/functional/test_object_versioning.py +++ b/test/functional/test_object_versioning.py @@ -21,13 +21,12 @@ import time import six from copy import deepcopy -from hashlib import md5 from six.moves.urllib.parse import quote, unquote import test.functional as tf from swift.common.swob import normalize_etag -from swift.common.utils import MD5_OF_EMPTY_STRING, config_true_value +from swift.common.utils import MD5_OF_EMPTY_STRING, config_true_value, md5 from swift.common.middleware.versioned_writes.object_versioning import \ DELETE_MARKER_CONTENT_TYPE @@ -338,7 +337,9 @@ class TestObjectVersioning(TestObjectVersioningBase): obj = self.env.unversioned_container.file(oname) resp = obj.write(body, return_resp=True) etag = resp.getheader('etag') - self.assertEqual(md5(body).hexdigest(), normalize_etag(etag)) + self.assertEqual( + md5(body, usedforsecurity=False).hexdigest(), + normalize_etag(etag)) # un-versioned object is cool with with if-match self.assertEqual(body, obj.read(hdrs={'if-match': etag})) @@ -569,7 +570,7 @@ class TestObjectVersioning(TestObjectVersioningBase): 'name': obj_name, 'content_type': version['content_type'], 'version_id': version['version_id'], - 'hash': md5(version['body']).hexdigest(), + 'hash': md5(version['body'], usedforsecurity=False).hexdigest(), 'bytes': len(version['body'],) } for version in reversed(versions)] for item, is_latest in zip(expected, (True, False, False)): @@ -1263,14 +1264,14 @@ class TestContainerOperations(TestObjectVersioningBase): # v1 resp = obj.write(b'version1', hdrs={ 'Content-Type': 'text/jibberish11', - 'ETag': md5(b'version1').hexdigest(), + 'ETag': md5(b'version1', usedforsecurity=False).hexdigest(), }, return_resp=True) obj1_v1['id'] = resp.getheader('x-object-version-id') # v2 resp = obj.write(b'version2', hdrs={ 'Content-Type': 'text/jibberish12', - 'ETag': md5(b'version2').hexdigest(), + 'ETag': md5(b'version2', usedforsecurity=False).hexdigest(), }, return_resp=True) obj1_v2 = {} obj1_v2['name'] = obj1_v1['name'] @@ -1279,7 +1280,7 @@ class TestContainerOperations(TestObjectVersioningBase): # v3 resp = obj.write(b'version3', hdrs={ 'Content-Type': 'text/jibberish13', - 'ETag': md5(b'version3').hexdigest(), + 'ETag': md5(b'version3', usedforsecurity=False).hexdigest(), }, return_resp=True) obj1_v3 = {} obj1_v3['name'] = obj1_v1['name'] @@ -1333,20 +1334,20 @@ class TestContainerOperations(TestObjectVersioningBase): obj = self.env.unversioned_container.file(objs[0]) obj.write(b'data', hdrs={ 'Content-Type': 'text/jibberish11', - 'ETag': md5(b'data').hexdigest(), + 'ETag': md5(b'data', usedforsecurity=False).hexdigest(), }) obj.delete() obj = self.env.unversioned_container.file(objs[1]) obj.write(b'first', hdrs={ 'Content-Type': 'text/blah-blah-blah', - 'ETag': md5(b'first').hexdigest(), + 'ETag': md5(b'first', usedforsecurity=False).hexdigest(), }) obj = self.env.unversioned_container.file(objs[2]) obj.write(b'second', hdrs={ 'Content-Type': 'text/plain', - 'ETag': md5(b'second').hexdigest(), + 'ETag': md5(b'second', usedforsecurity=False).hexdigest(), }) return objs @@ -1385,21 +1386,21 @@ class TestContainerOperations(TestObjectVersioningBase): 'name': obj1_v3['name'], 'bytes': 8, 'content_type': 'text/jibberish13', - 'hash': md5(b'version3').hexdigest(), + 'hash': md5(b'version3', usedforsecurity=False).hexdigest(), 'is_latest': False, 'version_id': obj1_v3['id'], }, { 'name': obj1_v2['name'], 'bytes': 8, 'content_type': 'text/jibberish12', - 'hash': md5(b'version2').hexdigest(), + 'hash': md5(b'version2', usedforsecurity=False).hexdigest(), 'is_latest': False, 'version_id': obj1_v2['id'], }, { 'name': obj1_v1['name'], 'bytes': 8, 'content_type': 'text/jibberish11', - 'hash': md5(b'version1').hexdigest(), + 'hash': md5(b'version1', usedforsecurity=False).hexdigest(), 'is_latest': False, 'version_id': obj1_v1['id'], }]) @@ -1418,21 +1419,21 @@ class TestContainerOperations(TestObjectVersioningBase): 'name': obj1_v1['name'], 'bytes': 8, 'content_type': 'text/jibberish11', - 'hash': md5(b'version1').hexdigest(), + 'hash': md5(b'version1', usedforsecurity=False).hexdigest(), 'is_latest': False, 'version_id': obj1_v1['id'], }, { 'name': obj1_v2['name'], 'bytes': 8, 'content_type': 'text/jibberish12', - 'hash': md5(b'version2').hexdigest(), + 'hash': md5(b'version2', usedforsecurity=False).hexdigest(), 'is_latest': False, 'version_id': obj1_v2['id'], }, { 'name': obj1_v3['name'], 'bytes': 8, 'content_type': 'text/jibberish13', - 'hash': md5(b'version3').hexdigest(), + 'hash': md5(b'version3', usedforsecurity=False).hexdigest(), 'is_latest': False, 'version_id': obj1_v3['id'], }, { @@ -1481,21 +1482,21 @@ class TestContainerOperations(TestObjectVersioningBase): 'name': obj1_v3['name'], 'bytes': 8, 'content_type': 'text/jibberish13', - 'hash': md5(b'version3').hexdigest(), + 'hash': md5(b'version3', usedforsecurity=False).hexdigest(), 'is_latest': False, 'version_id': obj1_v3['id'], }, { 'name': obj1_v2['name'], 'bytes': 8, 'content_type': 'text/jibberish12', - 'hash': md5(b'version2').hexdigest(), + 'hash': md5(b'version2', usedforsecurity=False).hexdigest(), 'is_latest': False, 'version_id': obj1_v2['id'], }, { 'name': obj1_v1['name'], 'bytes': 8, 'content_type': 'text/jibberish11', - 'hash': md5(b'version1').hexdigest(), + 'hash': md5(b'version1', usedforsecurity=False).hexdigest(), 'is_latest': False, 'version_id': obj1_v1['id'], }]) @@ -1516,21 +1517,21 @@ class TestContainerOperations(TestObjectVersioningBase): 'name': obj1_v1['name'], 'bytes': 8, 'content_type': 'text/jibberish11', - 'hash': md5(b'version1').hexdigest(), + 'hash': md5(b'version1', usedforsecurity=False).hexdigest(), 'is_latest': False, 'version_id': obj1_v1['id'], }, { 'name': obj1_v1['name'], 'bytes': 8, 'content_type': 'text/jibberish12', - 'hash': md5(b'version2').hexdigest(), + 'hash': md5(b'version2', usedforsecurity=False).hexdigest(), 'is_latest': False, 'version_id': obj1_v2['id'], }, { 'name': obj1_v1['name'], 'bytes': 8, 'content_type': 'text/jibberish13', - 'hash': md5(b'version3').hexdigest(), + 'hash': md5(b'version3', usedforsecurity=False).hexdigest(), 'is_latest': False, 'version_id': obj1_v3['id'], }, { @@ -1601,7 +1602,7 @@ class TestContainerOperations(TestObjectVersioningBase): 'name': obj1_v3['name'], 'bytes': 8, 'content_type': 'text/jibberish13', - 'hash': md5(b'version3').hexdigest(), + 'hash': md5(b'version3', usedforsecurity=False).hexdigest(), 'is_latest': False, 'version_id': obj1_v3['id'], }]) @@ -1623,14 +1624,14 @@ class TestContainerOperations(TestObjectVersioningBase): 'name': obj1_v2['name'], 'bytes': 8, 'content_type': 'text/jibberish12', - 'hash': md5(b'version2').hexdigest(), + 'hash': md5(b'version2', usedforsecurity=False).hexdigest(), 'is_latest': False, 'version_id': obj1_v2['id'], }, { 'name': obj1_v1['name'], 'bytes': 8, 'content_type': 'text/jibberish11', - 'hash': md5(b'version1').hexdigest(), + 'hash': md5(b'version1', usedforsecurity=False).hexdigest(), 'is_latest': False, 'version_id': obj1_v1['id'], }]) @@ -1690,14 +1691,14 @@ class TestContainerOperations(TestObjectVersioningBase): 'name': obj1_v2['name'], 'bytes': 8, 'content_type': 'text/jibberish12', - 'hash': md5(b'version2').hexdigest(), + 'hash': md5(b'version2', usedforsecurity=False).hexdigest(), 'is_latest': False, 'version_id': obj1_v2['id'], }, { 'name': obj1_v1['name'], 'bytes': 8, 'content_type': 'text/jibberish11', - 'hash': md5(b'version1').hexdigest(), + 'hash': md5(b'version1', usedforsecurity=False).hexdigest(), 'is_latest': False, 'version_id': obj1_v1['id'], }]) @@ -2052,7 +2053,7 @@ class TestContainerOperations(TestObjectVersioningBase): 'name': obj2, 'bytes': 5, 'content_type': 'text/blah-blah-blah', - 'hash': md5(b'first').hexdigest(), + 'hash': md5(b'first', usedforsecurity=False).hexdigest(), 'is_latest': True, 'version_id': 'null', } @@ -2060,7 +2061,7 @@ class TestContainerOperations(TestObjectVersioningBase): 'name': obj3, 'bytes': 6, 'content_type': 'text/plain', - 'hash': md5(b'second').hexdigest(), + 'hash': md5(b'second', usedforsecurity=False).hexdigest(), 'is_latest': True, 'version_id': 'null', } @@ -2112,14 +2113,14 @@ class TestContainerOperations(TestObjectVersioningBase): # v1 resp = obj.write(b'version1', hdrs={ 'Content-Type': 'text/jibberish11', - 'ETag': md5(b'version1').hexdigest(), + 'ETag': md5(b'version1', usedforsecurity=False).hexdigest(), }, return_resp=True) obj_v1 = resp.getheader('x-object-version-id') # v2 resp = obj.write(b'version2', hdrs={ 'Content-Type': 'text/jibberish12', - 'ETag': md5(b'version2').hexdigest(), + 'ETag': md5(b'version2', usedforsecurity=False).hexdigest(), }, return_resp=True) obj_v2 = resp.getheader('x-object-version-id') @@ -2130,7 +2131,7 @@ class TestContainerOperations(TestObjectVersioningBase): resp = obj.write(b'version4', hdrs={ 'Content-Type': 'text/jibberish14', - 'ETag': md5(b'version4').hexdigest(), + 'ETag': md5(b'version4', usedforsecurity=False).hexdigest(), }, return_resp=True) obj_v4 = resp.getheader('x-object-version-id') @@ -2143,7 +2144,7 @@ class TestContainerOperations(TestObjectVersioningBase): 'name': obj.name, 'bytes': 8, 'content_type': 'text/jibberish14', - 'hash': md5(b'version4').hexdigest(), + 'hash': md5(b'version4', usedforsecurity=False).hexdigest(), 'is_latest': True, 'version_id': obj_v4, }, { @@ -2157,14 +2158,14 @@ class TestContainerOperations(TestObjectVersioningBase): 'name': obj.name, 'bytes': 8, 'content_type': 'text/jibberish12', - 'hash': md5(b'version2').hexdigest(), + 'hash': md5(b'version2', usedforsecurity=False).hexdigest(), 'is_latest': False, 'version_id': obj_v2, }, { 'name': obj.name, 'bytes': 8, 'content_type': 'text/jibberish11', - 'hash': md5(b'version1').hexdigest(), + 'hash': md5(b'version1', usedforsecurity=False).hexdigest(), 'is_latest': False, 'version_id': obj_v1, }]) @@ -2175,7 +2176,7 @@ class TestContainerOperations(TestObjectVersioningBase): # v5 - non-versioned obj.write(b'version5', hdrs={ 'Content-Type': 'text/jibberish15', - 'ETag': md5(b'version5').hexdigest(), + 'ETag': md5(b'version5', usedforsecurity=False).hexdigest(), }) listing_parms = {'format': 'json', 'versions': None} @@ -2187,14 +2188,14 @@ class TestContainerOperations(TestObjectVersioningBase): 'name': obj.name, 'bytes': 8, 'content_type': 'text/jibberish15', - 'hash': md5(b'version5').hexdigest(), + 'hash': md5(b'version5', usedforsecurity=False).hexdigest(), 'is_latest': True, 'version_id': 'null', }, { 'name': obj.name, 'bytes': 8, 'content_type': 'text/jibberish14', - 'hash': md5(b'version4').hexdigest(), + 'hash': md5(b'version4', usedforsecurity=False).hexdigest(), 'is_latest': False, 'version_id': obj_v4, }, { @@ -2208,14 +2209,14 @@ class TestContainerOperations(TestObjectVersioningBase): 'name': obj.name, 'bytes': 8, 'content_type': 'text/jibberish12', - 'hash': md5(b'version2').hexdigest(), + 'hash': md5(b'version2', usedforsecurity=False).hexdigest(), 'is_latest': False, 'version_id': obj_v2, }, { 'name': obj.name, 'bytes': 8, 'content_type': 'text/jibberish11', - 'hash': md5(b'version1').hexdigest(), + 'hash': md5(b'version1', usedforsecurity=False).hexdigest(), 'is_latest': False, 'version_id': obj_v1, }]) @@ -2496,19 +2497,19 @@ class TestVersionsLocationWithVersioning(TestObjectVersioningBase): # v1 obj.write(b'version1', hdrs={ 'Content-Type': 'text/jibberish11', - 'ETag': md5(b'version1').hexdigest(), + 'ETag': md5(b'version1', usedforsecurity=False).hexdigest(), }) # v2 obj.write(b'version2', hdrs={ 'Content-Type': 'text/jibberish12', - 'ETag': md5(b'version2').hexdigest(), + 'ETag': md5(b'version2', usedforsecurity=False).hexdigest(), }) # v3 obj.write(b'version3', hdrs={ 'Content-Type': 'text/jibberish13', - 'ETag': md5(b'version3').hexdigest(), + 'ETag': md5(b'version3', usedforsecurity=False).hexdigest(), }) return obj @@ -2526,7 +2527,7 @@ class TestVersionsLocationWithVersioning(TestObjectVersioningBase): 'name': obj_name, 'bytes': 8, 'content_type': 'text/jibberish13', - 'hash': md5(b'version3').hexdigest(), + 'hash': md5(b'version3', usedforsecurity=False).hexdigest(), 'is_latest': True, 'version_id': 'null' }]) @@ -2543,13 +2544,13 @@ class TestVersionsLocationWithVersioning(TestObjectVersioningBase): self.assertEqual(prev_versions, [{ 'bytes': 8, 'content_type': 'text/jibberish11', - 'hash': md5(b'version1').hexdigest(), + 'hash': md5(b'version1', usedforsecurity=False).hexdigest(), 'is_latest': True, 'version_id': 'null', }, { 'bytes': 8, 'content_type': 'text/jibberish12', - 'hash': md5(b'version2').hexdigest(), + 'hash': md5(b'version2', usedforsecurity=False).hexdigest(), 'is_latest': True, 'version_id': 'null' }]) |