Add subclass of pathlib.Path for existing directories

This commit is contained in:
2026-04-05 20:15:33 +02:00
parent 00fbd89746
commit d79a22e98f
2 changed files with 64 additions and 0 deletions
@@ -0,0 +1,28 @@
from src.jcloud_docsgen._utils import ExistingDirectory
import pytest
import pathlib
@pytest.mark.parametrize('path,expected', [
('tests/unit/_utils/test_directory/', 'tests/unit/_utils/test_directory'),
('tests/unit/_utils/test_directory', 'tests/unit/_utils/test_directory'),
('tests/unit/_utils/', 'tests/unit/_utils'),
('tests/unit/_utils', 'tests/unit/_utils'),
('/', '/'),
('./', '.'),
('.', '.'),
('../', '..'),
('..', '..'),
])
def test_ExistingDirectory(path, expected):
assert ExistingDirectory(path).as_posix() == expected
@pytest.mark.parametrize('path,expected_exception,expected_exception_message', [
('tests/unit/_utils/does_not_exist/', FileNotFoundError, '[Errno 2] no such file or directory: \'tests/unit/_utils/does_not_exist/\''),
('tests/unit/_utils/does_not_exist', FileNotFoundError, '[Errno 2] no such file or directory: \'tests/unit/_utils/does_not_exist\''),
('', FileNotFoundError, '[Errno 2] no such file or directory: \'\''),
('README.md', NotADirectoryError, '[Errno 20] not a directory: \'README.md\''),
])
def test_ExistingDirectory_exceptions(path, expected_exception, expected_exception_message):
with pytest.raises(expected_exception) as exc_info:
ExistingDirectory(path)
assert str(exc_info.value) == expected_exception_message