示例#1
0
async def test_write_large_blob_data(db, guillotina_main):
    db = await get_database('db')
    login()

    async with transaction(db=db):
        container = await db.async_get('container')
        if container is None:
            container = await create_content_in_container(db,
                                                          'Container',
                                                          'container',
                                                          title='Container')

        blob = Blob(container)
        container.blob = blob

        multiplier = 999999

        blobfi = blob.open('w')
        await blobfi.async_write(b'foobar' * multiplier)

    async with transaction(db=db):
        container = await db.async_get('container')
        assert await container.blob.open().async_read() == (b'foobar' *
                                                            multiplier)
        assert container.blob.size == len(b'foobar' * multiplier)
        assert container.blob.chunks == 6

        await db.async_del('container')
示例#2
0
async def test_write_large_blob_data(db, guillotina_main):
    root = get_utility(IApplication, name='root')
    db = root['db']
    request = get_mocked_request(db)
    login(request)

    async with managed_transaction(request=request):
        container = await db.async_get('container')
        if container is None:
            container = await create_content_in_container(
                db, 'Container', 'container', request=request,
                title='Container')

        blob = Blob(container)
        container.blob = blob

        multiplier = 999999

        blobfi = blob.open('w')
        await blobfi.async_write(b'foobar' * multiplier)

    async with managed_transaction(request=request):
        container = await db.async_get('container')
        assert await container.blob.open().async_read() == (b'foobar' * multiplier)
        assert container.blob.size == len(b'foobar' * multiplier)
        assert container.blob.chunks == 6

        await db.async_del('container')
示例#3
0
async def test_write_large_blob_data(db, guillotina_main):
    db = await get_database("db")
    login()

    async with transaction(db=db):
        container = await db.async_get("container")
        if container is None:
            container = await create_content_in_container(db,
                                                          "Container",
                                                          "container",
                                                          title="Container")

        blob = Blob(container)
        container.blob = blob

        multiplier = 999999

        blobfi = blob.open("w")
        await blobfi.async_write(b"foobar" * multiplier)

    async with transaction(db=db):
        container = await db.async_get("container")
        assert await container.blob.open().async_read() == (b"foobar" *
                                                            multiplier)
        assert container.blob.size == len(b"foobar" * multiplier)
        assert container.blob.chunks == 6

        await db.async_del("container")
示例#4
0
async def test_open_blob_error(db, guillotina_main):
    db = await get_database("db")
    login()

    async with transaction(db=db):
        container = await db.async_get("container")
        if container is None:
            container = await create_content_in_container(db,
                                                          "Container",
                                                          "container",
                                                          title="Container")

        blob = Blob(container)
        with pytest.raises(Exception):
            bf = blob.open("X")
            await bf.async_write_chunk(b"")
        with pytest.raises(BlobChunkNotFound):
            bf = blob.open()
            await bf.async_read_chunk(1)
示例#5
0
async def test_write_blob_data(db, guillotina_main):
    root = get_utility(IApplication, name='root')
    db = root['db']
    login()

    async with transaction(db=db):
        container = await db.async_get('container')
        if container is None:
            container = await create_content_in_container(
                db, 'Container', 'container', title='Container')

        blob = Blob(container)
        container.blob = blob

        blobfi = blob.open('w')
        await blobfi.async_write(b'foobar')

    async with transaction(db=db):
        container = await db.async_get('container')
        assert await container.blob.open().async_read() == b'foobar'
        assert container.blob.size == 6
        assert container.blob.chunks == 1

        await db.async_del('container')
示例#6
0
async def test_create_blob(db, guillotina_main):
    root = get_utility(IApplication, name='root')
    db = root['db']
    login()

    async with transaction(db=db):
        container = await create_content_in_container(
            db, 'Container', 'container', title='Container')

        blob = Blob(container)
        container.blob = blob

    async with transaction(db=db):
        container = await db.async_get('container')
        assert blob.bid == container.blob.bid
        assert blob.resource_uid == container.__uuid__
        await db.async_del('container')
示例#7
0
async def test_create_blob(db, guillotina_main):
    db = await get_database('db')
    login()

    async with transaction(db=db):
        container = await create_content_in_container(db,
                                                      'Container',
                                                      'container',
                                                      title='Container')

        blob = Blob(container)
        container.blob = blob

    async with transaction(db=db):
        container = await db.async_get('container')
        assert blob.bid == container.blob.bid
        assert blob.resource_uid == container.__uuid__
        await db.async_del('container')