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
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