diff --git a/pkgs/clan-cli/clan_cli/dirs.py b/pkgs/clan-cli/clan_cli/dirs.py index 514bbe12b..cf5151e42 100644 --- a/pkgs/clan-cli/clan_cli/dirs.py +++ b/pkgs/clan-cli/clan_cli/dirs.py @@ -10,7 +10,7 @@ def get_clan_flake_toplevel() -> Path: for project_file in [".clan-flake", ".git", ".hg", ".svn", "flake.nix"]: initial_path = Path(os.getcwd()) path = Path(initial_path) - while path.parent == path: + while path.parent != path: if (path / project_file).exists(): return path path = path.parent diff --git a/pkgs/clan-cli/tests/test_dirs.py b/pkgs/clan-cli/tests/test_dirs.py index e37949066..2dec0e174 100644 --- a/pkgs/clan-cli/tests/test_dirs.py +++ b/pkgs/clan-cli/tests/test_dirs.py @@ -12,3 +12,11 @@ def test_get_clan_flake_toplevel( monkeypatch.chdir(temporary_dir) with pytest.raises(ClanError): get_clan_flake_toplevel() + (temporary_dir / ".git").touch() + assert get_clan_flake_toplevel() == temporary_dir + + subdir = temporary_dir / "subdir" + subdir.mkdir() + monkeypatch.chdir(subdir) + (subdir / ".clan-flake").touch() + assert get_clan_flake_toplevel() == subdir