示例#1
0
def test_destinationpath():
    dp = azops.DestinationPath()
    sa = mock.MagicMock()
    dp.add_path_with_storage_account('/remote/path/', sa)

    assert len(dp._paths) == 1
    assert len(dp._path_map) == 1

    with pytest.raises(RuntimeError):
        dp.add_path_with_storage_account('/remote/path2/', sa)

    assert dp.lookup_storage_account('/remote/path/') is not None
def test_specification(tmpdir):
    lsp = upload.LocalSourcePath()
    lsp.add_paths(['-', '/dev/stdin'])
    with pytest.raises(ValueError):
        upload.Specification(
            upload_options=options.Upload(
                access_tier=None,
                chunk_size_bytes=4194304,
                delete_extraneous_destination=False,
                delete_only=False,
                mode=azmodels.StorageModes.Auto,
                one_shot_bytes=0,
                overwrite=True,
                recursive=True,
                rename=True,
                rsa_public_key=None,
                stdin_as_page_blob_size=0,
                store_file_properties=options.FileProperties(
                    attributes=True,
                    cache_control='cc',
                    content_type='ct',
                    lmt=None,
                    md5=True,
                ),
                strip_components=0,
                vectored_io=None,
            ),
            skip_on_options=options.SkipOn(
                filesize_match=True,
                lmt_ge=False,
                md5_match=True,
            ),
            local_source_path=lsp,
        )

    lsp = upload.LocalSourcePath()
    lsp.add_path(str(tmpdir))
    with pytest.raises(ValueError):
        upload.Specification(
            upload_options=options.Upload(
                access_tier=None,
                chunk_size_bytes=4194304,
                delete_extraneous_destination=False,
                delete_only=False,
                mode=azmodels.StorageModes.Auto,
                one_shot_bytes=0,
                overwrite=True,
                recursive=True,
                rename=True,
                rsa_public_key=None,
                stdin_as_page_blob_size=0,
                store_file_properties=options.FileProperties(
                    attributes=True,
                    cache_control='cc',
                    content_type='ct',
                    lmt=None,
                    md5=True,
                ),
                strip_components=0,
                vectored_io=None,
            ),
            skip_on_options=options.SkipOn(
                filesize_match=True,
                lmt_ge=False,
                md5_match=True,
            ),
            local_source_path=lsp,
        )

    lsp = upload.LocalSourcePath()
    lsp.add_path(str(tmpdir))
    with pytest.raises(ValueError):
        upload.Specification(
            upload_options=options.Upload(
                access_tier=None,
                chunk_size_bytes=-1,
                delete_extraneous_destination=False,
                delete_only=False,
                mode=azmodels.StorageModes.Auto,
                one_shot_bytes=0,
                overwrite=True,
                recursive=True,
                rename=False,
                rsa_public_key=None,
                stdin_as_page_blob_size=0,
                store_file_properties=options.FileProperties(
                    attributes=True,
                    cache_control='cc',
                    content_type='ct',
                    lmt=None,
                    md5=True,
                ),
                strip_components=0,
                vectored_io=None,
            ),
            skip_on_options=options.SkipOn(
                filesize_match=True,
                lmt_ge=False,
                md5_match=True,
            ),
            local_source_path=lsp,
        )

    with pytest.raises(ValueError):
        upload.Specification(
            upload_options=options.Upload(
                access_tier=None,
                chunk_size_bytes=upload._MAX_BLOCK_BLOB_CHUNKSIZE_BYTES + 1,
                delete_extraneous_destination=False,
                delete_only=False,
                mode=azmodels.StorageModes.Auto,
                one_shot_bytes=0,
                overwrite=True,
                recursive=True,
                rename=False,
                rsa_public_key=None,
                stdin_as_page_blob_size=0,
                store_file_properties=options.FileProperties(
                    attributes=True,
                    cache_control='cc',
                    content_type='ct',
                    lmt=None,
                    md5=True,
                ),
                strip_components=0,
                vectored_io=None,
            ),
            skip_on_options=options.SkipOn(
                filesize_match=True,
                lmt_ge=False,
                md5_match=True,
            ),
            local_source_path=lsp,
        )

    with pytest.raises(ValueError):
        upload.Specification(
            upload_options=options.Upload(
                access_tier=None,
                chunk_size_bytes=4194304,
                delete_extraneous_destination=False,
                delete_only=False,
                mode=azmodels.StorageModes.Auto,
                one_shot_bytes=-1,
                overwrite=True,
                recursive=True,
                rename=False,
                rsa_public_key=None,
                stdin_as_page_blob_size=0,
                store_file_properties=options.FileProperties(
                    attributes=True,
                    cache_control='cc',
                    content_type='ct',
                    lmt=None,
                    md5=True,
                ),
                strip_components=0,
                vectored_io=None,
            ),
            skip_on_options=options.SkipOn(
                filesize_match=True,
                lmt_ge=False,
                md5_match=True,
            ),
            local_source_path=lsp,
        )

    with pytest.raises(ValueError):
        upload.Specification(
            upload_options=options.Upload(
                access_tier=None,
                chunk_size_bytes=4194304,
                delete_extraneous_destination=False,
                delete_only=False,
                mode=azmodels.StorageModes.Auto,
                one_shot_bytes=upload._MAX_BLOCK_BLOB_ONESHOT_BYTES + 1,
                overwrite=True,
                recursive=True,
                rename=False,
                rsa_public_key=None,
                stdin_as_page_blob_size=0,
                store_file_properties=options.FileProperties(
                    attributes=True,
                    cache_control=None,
                    content_type=None,
                    lmt=None,
                    md5=True,
                ),
                strip_components=0,
                vectored_io=None,
            ),
            skip_on_options=options.SkipOn(
                filesize_match=True,
                lmt_ge=False,
                md5_match=True,
            ),
            local_source_path=lsp,
        )

    spec = upload.Specification(
        upload_options=options.Upload(
            access_tier=None,
            chunk_size_bytes=4194304,
            delete_extraneous_destination=False,
            delete_only=False,
            mode=azmodels.StorageModes.Auto,
            one_shot_bytes=0,
            overwrite=True,
            recursive=True,
            rename=False,
            rsa_public_key=None,
            stdin_as_page_blob_size=0,
            store_file_properties=options.FileProperties(
                attributes=True,
                cache_control=None,
                content_type=None,
                lmt=None,
                md5=True,
            ),
            strip_components=0,
            vectored_io=None,
        ),
        skip_on_options=options.SkipOn(
            filesize_match=True,
            lmt_ge=False,
            md5_match=True,
        ),
        local_source_path=lsp,
    )
    spec.add_azure_destination_path(azops.DestinationPath())
    assert len(spec.destinations) == 1