Exemple #1
0
def upload_file(
    file_path: Path,
    container_name: str,
    blob_name: str,
    service: ContainerClient,
    settings: Settings,
    force: bool,
) -> None:
    file_extension = get_file_extension(file_path)

    if file_extension in settings.mimes:
        file_mime = settings.mimes.get(file_extension)
    else:
        file_mime = mimetypes.guess_type(file_path)[0]

    blob_name = remove_empty_folders(blob_name)
    logger.debug("Using mime `%s` for blob `%s`", file_mime, blob_name)
    logger.debug("File `%s` mapped to blob `%s`", file_path, blob_name)
    logger.info(f"Uploading `{blob_name}` ({file_mime})")

    with open(file_path, mode="rb") as file:
        service.upload_blob(
            name=blob_name,
            data=file,
            content_settings=ContentSettings(content_type=file_mime),
            overwrite=force,
        )
async def test_serve_files_discovery(folder_name: str):
    app = FakeApplication()

    folder_path = get_folder_path(folder_name)
    options = ServeFilesOptions(folder_path, discovery=True)
    app.serve_files(options)

    await app.start()

    scope = get_example_scope("GET", "/", [])
    await app(
        scope,
        MockReceive(),
        MockSend(),
    )

    response = app.response
    assert response.status == 200
    body = await response.text()

    folder = Path(folder_path)
    for item in folder.iterdir():
        if item.is_dir():
            assert f"/{item.name}" in body
            continue

        file_extension = get_file_extension(str(item))
        if file_extension in options.extensions:
            assert f"/{item.name}" in body
        else:
            assert item.name not in body
Exemple #3
0
async def test_serve_files_discovery(folder_name: str, app, mock_receive,
                                     mock_send):
    folder_path = get_folder_path(folder_name)
    app.serve_files(folder_path, discovery=True)
    extensions = get_default_extensions()

    await app.start()

    scope = get_example_scope("GET", "/", [])
    await app(
        scope,
        mock_receive(),
        mock_send,
    )

    response = app.response
    assert response.status == 200
    body = await response.text()

    folder = Path(folder_path)
    for item in folder.iterdir():
        if item.is_dir():
            assert f"/{item.name}" in body
            continue

        file_extension = get_file_extension(str(item))
        if file_extension in extensions:
            assert f"/{item.name}" in body
        else:
            assert item.name not in body
def test_get_file_extension(value, expected_value):
    assert get_file_extension(value) == expected_value