Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 31 additions & 0 deletions tests/test_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
from memsearch.config import (
EmbeddingConfig,
MemSearchConfig,
_resolve_env_refs_in_dict,
deep_merge,
get_config_value,
load_config_file,
Expand Down Expand Up @@ -157,6 +158,36 @@ def test_resolve_env_ref_missing_var():
resolve_env_ref("env:NONEXISTENT_MEMSEARCH_VAR")


def test_resolve_env_refs_in_dict_resolves_nested_strings_only(
monkeypatch: pytest.MonkeyPatch,
):
"""Nested env refs should resolve while non-string values pass through."""
monkeypatch.setenv("INNER_KEY", "resolved-inner")
monkeypatch.setenv("TOP_KEY", "resolved-top")

resolved = _resolve_env_refs_in_dict(
{
"embedding": {
"api_key": "env:INNER_KEY",
"batch_size": 64,
},
"compact": {"api_key": "env:TOP_KEY"},
"enabled": True,
"retries": 3,
}
)

assert resolved == {
"embedding": {
"api_key": "resolved-inner",
"batch_size": 64,
},
"compact": {"api_key": "resolved-top"},
"enabled": True,
"retries": 3,
}


def test_resolve_env_refs_in_config(tmp_path: Path, monkeypatch: pytest.MonkeyPatch):
"""resolve_config should resolve env: references in TOML values."""
monkeypatch.setenv("TEST_API_KEY", "sk-from-env")
Expand Down
Loading