import os from fam_core.config_loader import _resolve_env_vars def test_resolves_string_env_var(monkeypatch): monkeypatch.setenv("FAM_CORE_TEST_VAR", "hello") assert _resolve_env_vars("${FAM_CORE_TEST_VAR}") == "hello" def test_unset_env_var_left_as_literal(): assert _resolve_env_vars("${SOME_TOTALLY_UNSET_VAR_XYZ}") == "${SOME_TOTALLY_UNSET_VAR_XYZ}" def test_resolves_nested_dict(monkeypatch): monkeypatch.setenv("FAM_CORE_TEST_VAR", "secret") data = {"a": {"b": "${FAM_CORE_TEST_VAR}"}, "c": ["${FAM_CORE_TEST_VAR}", "plain"]} out = _resolve_env_vars(data) assert out == {"a": {"b": "secret"}, "c": ["secret", "plain"]} def test_non_string_values_passed_through(): assert _resolve_env_vars(42) == 42 assert _resolve_env_vars(True) is True assert _resolve_env_vars(None) is None