From 979e739eff3c8f00ff1f35c3583beb7d327e1501 Mon Sep 17 00:00:00 2001 From: Matt Benjamin Date: Fri, 11 Sep 2020 13:23:41 -0400 Subject: [PATCH] fix test_lifecycle_expiration_header_{put,head} Primarily fixes the expiration header() verifier function check_lifecycle_expiration_header, but also cleans up prefix handling in setup_lifecycle_expiration(). Signed-off-by: Matt Benjamin --- s3tests_boto3/functional/test_s3.py | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/s3tests_boto3/functional/test_s3.py b/s3tests_boto3/functional/test_s3.py index 3fa7657..a01694b 100644 --- a/s3tests_boto3/functional/test_s3.py +++ b/s3tests_boto3/functional/test_s3.py @@ -9153,25 +9153,26 @@ def setup_lifecycle_expiration(client, bucket_name, rule_id, delta_days, Bucket=bucket_name, LifecycleConfiguration=lifecycle) eq(response['ResponseMetadata']['HTTPStatusCode'], 200) - key = rule_prefix + '/foo' + key = rule_prefix + 'foo' body = 'bar' response = client.put_object(Bucket=bucket_name, Key=key, Body=body) eq(response['ResponseMetadata']['HTTPStatusCode'], 200) - response = client.get_bucket_lifecycle_configuration(Bucket=bucket_name) return response def check_lifecycle_expiration_header(response, start_time, rule_id, delta_days): print(response) - #TODO: see how this can work - #print(response['ResponseMetadata']['HTTPHeaders']) - #exp_header = response['ResponseMetadata']['HTTPHeaders']['x-amz-expiration'] - #m = re.search(r'expiry-date="(.+)", rule-id="(.+)"', exp_header) + print(response['ResponseMetadata']['HTTPHeaders']) - #expiration = datetime.datetime.strptime(m.group(1), - # '%a %b %d %H:%M:%S %Y') - #eq((expiration - start_time).days, delta_days) - #eq(m.group(2), rule_id) + exp_header = response['ResponseMetadata']['HTTPHeaders']['x-amz-expiration'] + m = re.search(r'expiry-date="(.+)", rule-id="(.+)"', exp_header) + datestr = m.group(1) + exp_date = datetime.datetime.strptime(datestr, '%a, %d %b %Y %H:%M:%S %Z') + exp_diff = exp_date - start_time + rule_id = m.group(2) + + eq(exp_diff.days, delta_days) + eq(m.group(2), rule_id) return True @@ -9200,9 +9201,9 @@ def test_lifecycle_expiration_header_head(): now = datetime.datetime.now(None) response = setup_lifecycle_expiration( - client, bucket_name, 'rule1', 1, 'days1') + client, bucket_name, 'rule1', 1, 'days1/') - key = 'days1/' + '/foo' + key = 'days1/' + 'foo' # stat the object, check header response = client.head_object(Bucket=bucket_name, Key=key)