Merge pull request #1499 from srikiraju/fix/s3-list-deleted

S3: Do not attempt to return deleted files in bucket listing
This commit is contained in:
Steve Pulec 2018-03-07 07:08:07 -05:00 committed by GitHub
commit 0414cc51c1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
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')