write test for get_clan_flake_toplevel
This commit is contained in:
@@ -2,18 +2,19 @@ import os
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
from .errors import ClanError
|
||||
|
||||
|
||||
def get_clan_flake_toplevel() -> Path:
|
||||
"""Returns the path to the toplevel of the clan flake"""
|
||||
initial_path = Path(os.getcwd())
|
||||
path = Path(initial_path)
|
||||
while path.parent == path:
|
||||
project_files = [".clan-flake"]
|
||||
for project_file in project_files:
|
||||
for project_file in [".clan-flake", ".git", ".hg", ".svn", "flake.nix"]:
|
||||
initial_path = Path(os.getcwd())
|
||||
path = Path(initial_path)
|
||||
while path.parent == path:
|
||||
if (path / project_file).exists():
|
||||
return path
|
||||
path = path.parent
|
||||
return initial_path
|
||||
path = path.parent
|
||||
raise ClanError("Could not find clan flake toplevel directory")
|
||||
|
||||
|
||||
def user_data_dir() -> Path:
|
||||
|
||||
@@ -1,2 +1,6 @@
|
||||
import os
|
||||
sys.path.append(os.path.join(os.path.dirname(__file__), 'helpers'))
|
||||
import sys
|
||||
|
||||
sys.path.append(os.path.join(os.path.dirname(__file__), "helpers"))
|
||||
|
||||
pytest_plugins = ["temporary_dir"]
|
||||
|
||||
11
pkgs/clan-cli/tests/temporary_dir.py
Normal file
11
pkgs/clan-cli/tests/temporary_dir.py
Normal file
@@ -0,0 +1,11 @@
|
||||
import tempfile
|
||||
from pathlib import Path
|
||||
from typing import Iterator
|
||||
|
||||
import pytest
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def temporary_dir() -> Iterator[Path]:
|
||||
with tempfile.TemporaryDirectory(prefix="pytest-") as dirpath:
|
||||
yield Path(dirpath)
|
||||
14
pkgs/clan-cli/tests/test_dirs.py
Normal file
14
pkgs/clan-cli/tests/test_dirs.py
Normal file
@@ -0,0 +1,14 @@
|
||||
from pathlib import Path
|
||||
|
||||
import pytest
|
||||
|
||||
from clan_cli.dirs import get_clan_flake_toplevel
|
||||
from clan_cli.errors import ClanError
|
||||
|
||||
|
||||
def test_get_clan_flake_toplevel(
|
||||
monkeypatch: pytest.MonkeyPatch, temporary_dir: Path
|
||||
) -> None:
|
||||
monkeypatch.chdir(temporary_dir)
|
||||
with pytest.raises(ClanError):
|
||||
get_clan_flake_toplevel()
|
||||
Reference in New Issue
Block a user