summaryrefslogtreecommitdiff
path: root/test/functional/test_object_versioning.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/functional/test_object_versioning.py')
-rw-r--r--test/functional/test_object_versioning.py93
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'
}])