diff --git a/tests/tools/test_tts_dotenv_fallback.py b/tests/tools/test_tts_dotenv_fallback.py index ed72a78ade6..37618db59aa 100644 --- a/tests/tools/test_tts_dotenv_fallback.py +++ b/tests/tools/test_tts_dotenv_fallback.py @@ -34,9 +34,12 @@ def isolate_env(monkeypatch): class TestDotenvFallbackPerProvider: """For each affected provider, when only ``~/.hermes/.env`` carries the - key (mocked via ``hermes_cli.config.load_env``), the provider must find - it. Before the fix, ``os.getenv`` returned ``None`` and the provider - raised ``ValueError("X_API_KEY not set")``. + key, the provider must find it. These per-provider tests model that + dotenv-backed lookup by mocking ``tools.tts_tool.get_env_value`` directly; + the separate regression-guard tests cover the lower-level + ``hermes_cli.config.load_env`` integration. Before the fix, ``os.getenv`` + returned ``None`` and the provider raised + ``ValueError("X_API_KEY not set")``. """ def test_elevenlabs_reads_dotenv_key(self, tmp_path): diff --git a/tools/tts_tool.py b/tools/tts_tool.py index ae01843a8f4..30300f21449 100644 --- a/tools/tts_tool.py +++ b/tools/tts_tool.py @@ -44,7 +44,11 @@ from urllib.parse import urljoin from hermes_constants import display_hermes_home logger = logging.getLogger(__name__) -from hermes_cli.config import get_env_value +try: + from hermes_cli.config import get_env_value +except ImportError: + def get_env_value(name, default=None): + return os.getenv(name, default) from tools.managed_tool_gateway import resolve_managed_tool_gateway from tools.tool_backend_helpers import managed_nous_tools_enabled, prefers_gateway, resolve_openai_audio_api_key from tools.xai_http import hermes_xai_user_agent