"""Tests for hermes_cli.tools_config platform tool persistence.""" from hermes_cli.tools_config import _get_platform_tools, _platform_toolset_summary, _toolset_has_keys def test_get_platform_tools_uses_default_when_platform_not_configured(): config = {} enabled = _get_platform_tools(config, "cli") assert enabled def test_get_platform_tools_preserves_explicit_empty_selection(): config = {"platform_toolsets": {"cli": []}} enabled = _get_platform_tools(config, "cli") assert enabled == set() def test_platform_toolset_summary_uses_explicit_platform_list(): config = {} summary = _platform_toolset_summary(config, platforms=["cli"]) assert set(summary.keys()) == {"cli"} assert summary["cli"] == _get_platform_tools(config, "cli") def test_toolset_has_keys_for_vision_accepts_codex_auth(tmp_path, monkeypatch): monkeypatch.setenv("HERMES_HOME", str(tmp_path)) (tmp_path / "auth.json").write_text( '{"active_provider":"openai-codex","providers":{"openai-codex":{"tokens":{"access_token":"codex-access-token","refresh_token":"codex-refresh-token"}}}}' ) monkeypatch.delenv("OPENROUTER_API_KEY", raising=False) monkeypatch.delenv("OPENAI_BASE_URL", raising=False) monkeypatch.delenv("OPENAI_API_KEY", raising=False) monkeypatch.delenv("AUXILIARY_VISION_PROVIDER", raising=False) monkeypatch.delenv("CONTEXT_VISION_PROVIDER", raising=False) assert _toolset_has_keys("vision") is True