Files
afs/tests/test_config.py
2025-12-30 13:21:33 -05:00

45 lines
1.3 KiB
Python

from __future__ import annotations
from pathlib import Path
from afs.config import load_config, load_config_model
def test_load_config_merges_workspace_registry(tmp_path, monkeypatch) -> None:
context_root = tmp_path / "context"
context_root.mkdir()
workspace_dir = tmp_path / "workspace"
workspace_dir.mkdir()
registry_path = context_root / "workspaces.toml"
registry_path.write_text(
"[[workspaces]]\n"
f"path = \"{workspace_dir}\"\n"
"description = \"Example\"\n",
encoding="utf-8",
)
config_path = tmp_path / "afs.toml"
config_path.write_text(
f"[general]\ncontext_root = \"{context_root}\"\n",
encoding="utf-8",
)
monkeypatch.chdir(tmp_path)
data = load_config(merge_user=False)
workspaces = data["general"]["workspace_directories"]
assert workspaces
assert Path(workspaces[0]["path"]).resolve() == workspace_dir.resolve()
def test_load_config_model_uses_explicit_path(tmp_path) -> None:
context_root = tmp_path / "context"
config_path = tmp_path / "custom.toml"
config_path.write_text(
f"[general]\ncontext_root = \"{context_root}\"\n",
encoding="utf-8",
)
model = load_config_model(config_path=config_path, merge_user=False)
assert model.general.context_root == context_root.resolve()