jfaustin's picture
add dockerfile and folding studio cli
44459bb
"""Test path helpers."""
from pathlib import Path
import pytest
from folding_studio.utils.path_helpers import extract_files, validate_path
def test_extract_files(tmp_path: Path):
"""Test extract files."""
test_str_paths = [
tmp_path / "file.txt",
tmp_path / "dir_1/file.txt",
tmp_path / "dir_1/file_2.txt",
tmp_path / "dir_1/dir_11/file.txt",
tmp_path / "dir_2/file.txt",
tmp_path / "dir_2/file_2.txt",
]
for path in test_str_paths:
path.parent.mkdir(exist_ok=True, parents=True)
path.touch()
test_paths = [
tmp_path / "file.txt",
tmp_path / "dir_1",
tmp_path / "dir_2/file.txt",
]
extracted_paths = extract_files(test_paths)
assert len(extracted_paths) == 4
def test_validate_path(tmp_directory: Path):
with pytest.raises(FileNotFoundError):
validate_path("unknonw_path")
file_path = tmp_directory / "file.txt"
file_path.touch()
file_multi_suffix_path = tmp_directory / "file.tar.gz"
file_multi_suffix_path.touch()
dir_path = tmp_directory / "directory"
dir_path.mkdir()
with pytest.raises(FileNotFoundError):
validate_path(dir_path, is_file=True)
with pytest.raises(NotADirectoryError):
validate_path(file_path, is_dir=True)
with pytest.raises(ValueError):
validate_path(file_path, is_file=True, file_suffix=[".csv"])
validate_path(file_path, is_file=True, file_suffix=[".txt"])
with pytest.raises(ValueError):
validate_path(file_multi_suffix_path, is_file=True, file_suffix=[".tar"])
validate_path(file_multi_suffix_path, is_file=True, file_suffix=[".gz"])
validate_path(file_multi_suffix_path, is_file=True, file_suffix=[".tar.gz"])