コード例 #1
0
    def test_delete_by_prefix(self, file_count):
        files = {
            'Contents': [
                {'Key': f'foo/{i}.html'} for i in range(file_count)
            ],
        }
        s3_client = pretend.stub(
            list_objects_v2=pretend.call_recorder(
                lambda Bucket=None, Prefix=None: files),
            delete_objects=pretend.call_recorder(
                lambda Bucket=None, Delete=None: None),
        )
        storage = S3DocsStorage(s3_client, 'bucket-name')

        storage.remove_by_prefix('foo')

        assert s3_client.list_objects_v2.calls == [
            pretend.call(Bucket='bucket-name', Prefix='foo'),
        ]

        assert s3_client.delete_objects.calls == [
            pretend.call(
                Bucket='bucket-name',
                Delete={
                    'Objects': [
                        {'Key': f'foo/{i}.html'} for i in range(file_count)
                    ]
                },
            ),
        ]
コード例 #2
0
    def test_delete_by_prefix_more_files(self):
        files = {"Contents": [{"Key": f"foo/{i}.html"} for i in range(150)]}
        s3_client = pretend.stub(
            list_objects_v2=pretend.call_recorder(
                lambda Bucket=None, Prefix=None: files),
            delete_objects=pretend.call_recorder(
                lambda Bucket=None, Delete=None: None),
        )
        storage = S3DocsStorage(s3_client, "bucket-name")

        storage.remove_by_prefix("foo")

        assert s3_client.list_objects_v2.calls == [
            pretend.call(Bucket="bucket-name", Prefix="foo")
        ]

        assert s3_client.delete_objects.calls == [
            pretend.call(
                Bucket="bucket-name",
                Delete={
                    "Objects": [{
                        "Key": f"foo/{i}.html"
                    } for i in range(100)]
                },
            ),
            pretend.call(
                Bucket="bucket-name",
                Delete={
                    "Objects": [{
                        "Key": f"foo/{i}.html"
                    } for i in range(100, 150)]
                },
            ),
        ]
コード例 #3
0
    def test_create_service(self):
        session = boto3.session.Session()
        request = pretend.stub(
            find_service=pretend.call_recorder(lambda name: session),
            registry=pretend.stub(settings={"docs.bucket": "froblob"}),
        )
        storage = S3DocsStorage.create_service(None, request)

        assert request.find_service.calls == [pretend.call(name="aws.session")]
        assert storage.bucket_name == "froblob"