From 40182ce26f3363487bc9b31aaa55538b1e7f10a6 Mon Sep 17 00:00:00 2001 From: Casey Bodley Date: Wed, 15 Nov 2023 16:31:52 -0500 Subject: [PATCH] object lock: test very large RetainUntilDate https://tracker.ceph.com/issues/63537 reported that large dates (with year after 2107) got truncated when written. test with a later date, and check that get_object_retention() gives back the date we put Signed-off-by: Casey Bodley --- s3tests_boto3/functional/test_s3.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/s3tests_boto3/functional/test_s3.py b/s3tests_boto3/functional/test_s3.py index 1273d8a..7649df4 100644 --- a/s3tests_boto3/functional/test_s3.py +++ b/s3tests_boto3/functional/test_s3.py @@ -11776,9 +11776,11 @@ def test_object_lock_put_obj_retention(): key = 'file1' response = client.put_object(Bucket=bucket_name, Body='abc', Key=key) version_id = response['VersionId'] - retention = {'Mode':'GOVERNANCE', 'RetainUntilDate':datetime.datetime(2030,1,1,tzinfo=pytz.UTC)} + retention = {'Mode':'GOVERNANCE', 'RetainUntilDate':datetime.datetime(2140,1,1,tzinfo=pytz.UTC)} response = client.put_object_retention(Bucket=bucket_name, Key=key, Retention=retention) assert response['ResponseMetadata']['HTTPStatusCode'] == 200 + response = client.get_object_retention(Bucket=bucket_name, Key=key) + assert response['Retention'] == retention client.delete_object(Bucket=bucket_name, Key=key, VersionId=version_id, BypassGovernanceRetention=True)