Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

s3tests_boto3/functional/test_s3.py: add test for list object versions with key marker #594

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 45 additions & 0 deletions s3tests_boto3/functional/test_s3.py
Original file line number Diff line number Diff line change
Expand Up @@ -1450,6 +1450,51 @@ def test_bucket_list_return_data_versioning():
assert obj['VersionId'] == key_data['VersionId']
_compare_dates(obj['LastModified'],key_data['LastModified'])

def test_bucket_list_return_data_versioning_key_marker():

bucket_name = get_new_bucket()
check_configure_versioning_retry(bucket_name, "Enabled", "Enabled")
key_names = ['file1', 'file2', 'file3','file1','file2','file3']
bucket_name = _create_objects(bucket_name=bucket_name,keys=key_names)

client = get_client()
list_object_versions_response = client.list_object_versions(Bucket=bucket_name)

all_keys=[obj['Key'] for obj in list_object_versions_response['Versions']]
all_version_ids=[obj['VersionId'] for obj in list_object_versions_response['Versions']]

expected_keys_response=all_keys[4:]
expected_version_ids_response=all_version_ids[4:]

response = client.list_object_versions(Bucket=bucket_name,KeyMarker='file2')
assert response['KeyMarker'] == 'file2'
assert response['IsTruncated'] == False

keys_response = [obj['Key'] for obj in response['Versions']]
version_ids_response = [obj['VersionId'] for obj in response['Versions']]

assert keys_response == expected_keys_response
assert version_ids_response == expected_version_ids_response

def test_bucket_list_return_data_versioning_version_id_marker():

bucket_name = get_new_bucket()
check_configure_versioning_retry(bucket_name, "Enabled", "Enabled")
key_names = ['bar', 'bar', 'bar','baz']
bucket_name = _create_objects(bucket_name=bucket_name,keys=key_names)

client = get_client()
list_object_versions_response = client.list_object_versions(Bucket=bucket_name)
all_version_ids=[obj['VersionId'] for obj in list_object_versions_response['Versions']]

version_id_marker=all_version_ids[1]
expected_version_ids_response=all_version_ids[2:]

response = client.list_object_versions(Bucket=bucket_name, KeyMarker='bar', VersionIdMarker=version_id_marker)
version_ids_response=[obj['VersionId'] for obj in response['Versions']]

assert expected_version_ids_response==version_ids_response

def test_bucket_list_objects_anonymous():
bucket_name = get_new_bucket()
client = get_client()
Expand Down