test: add pytest coverage for core modules
This commit is contained in:
44
tests/test_config.py
Normal file
44
tests/test_config.py
Normal file
@@ -0,0 +1,44 @@
|
||||
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()
|
||||
Reference in New Issue
Block a user