S3: Do not attempt to return deleted files in bucket listing

This commit is contained in:
Srikanth Raju 2018-03-06 01:50:22 -08:00
parent 553d074241
commit 4f05aa725c
2 changed files with 16 additions and 0 deletions

View File

@ -722,6 +722,7 @@ class S3Backend(BaseBackend):
else:
key_results.add(key)
key_results = filter(lambda key: not isinstance(key, FakeDeleteMarker), key_results)
key_results = sorted(key_results, key=lambda key: key.name)
folder_results = [folder_name for folder_name in sorted(
folder_results, key=lambda key: key)]

View File

@ -1390,6 +1390,21 @@ def test_boto3_copy_object_with_versioning():
obj2_version_new.should_not.equal(obj2_version)
@mock_s3
def test_boto3_deleted_versionings_list():
client = boto3.client('s3', region_name='us-east-1')
client.create_bucket(Bucket='blah')
client.put_bucket_versioning(Bucket='blah', VersioningConfiguration={'Status': 'Enabled'})
client.put_object(Bucket='blah', Key='test1', Body=b'test1')
client.put_object(Bucket='blah', Key='test2', Body=b'test2')
client.delete_objects(Bucket='blah', Delete={'Objects': [{'Key': 'test1'}]})
listed = client.list_objects_v2(Bucket='blah')
assert len(listed['Contents']) == 1
@mock_s3
def test_boto3_head_object_if_modified_since():
s3 = boto3.client('s3', region_name='us-east-1')