]> git-server-git.apps.pok.os.sepia.ceph.com Git - s3-tests.git/commitdiff
Add test to check retain date is in iso 8601 format
authorDanny Abukalam <danny@softiron.com>
Wed, 14 Jul 2021 22:03:35 +0000 (18:03 -0400)
committerCasey Bodley <cbodley@redhat.com>
Wed, 28 Jul 2021 13:38:30 +0000 (09:38 -0400)
Signed-off-by: Danny Abukalam <danny@softiron.com>
(cherry picked from commit e229d1aaf6eef5133643454a9643276fe34bd4f7)

s3tests_boto3/functional/test_s3.py

index d38ac98f6a66c2ce819764a9118ff9108e56a910..4d68444ccb1c14ea18e0f34f13985013ccf9314e 100644 (file)
@@ -12324,6 +12324,28 @@ def test_object_lock_get_obj_retention():
     client.delete_object(Bucket=bucket_name, Key=key, VersionId=version_id, BypassGovernanceRetention=True)
 
 
+@attr(resource='bucket')
+@attr(method='get')
+@attr(operation='Test object retention date formatting')
+@attr(assertion='success')
+@attr('object-lock')
+def test_object_lock_get_obj_retention_iso8601():
+    bucket_name = get_new_bucket_name()
+    client = get_client()
+    client.create_bucket(Bucket=bucket_name, ObjectLockEnabledForBucket=True)
+    key = 'file1'
+    response = client.put_object(Bucket=bucket_name, Body='abc', Key=key)
+    version_id = response['VersionId']
+    date = datetime.datetime.today() + datetime.timedelta(days=365)
+    retention = {'Mode':'GOVERNANCE', 'RetainUntilDate': date}
+    client.put_object_retention(Bucket=bucket_name, Key=key, Retention=retention)
+    client.meta.events.register('after-call.s3.HeadObject', get_http_response)
+    client.head_object(Bucket=bucket_name,VersionId=version_id,Key=key)
+    retain_date = http_response['headers']['x-amz-object-lock-retain-until-date']
+    isodate.parse_datetime(retain_date)
+    client.delete_object(Bucket=bucket_name, Key=key, VersionId=version_id, BypassGovernanceRetention=True)
+
+
 @attr(resource='bucket')
 @attr(method='get')
 @attr(operation='Test get object retention with invalid bucket')