mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-04-25 00:51:20 +00:00
fix(tests): also add api_key where missing (AIAgent needs BOTH for direct path)
My last fix added base_url but not api_key. AIAgent.__init__ takes the direct-construction path only when BOTH are set — with only base_url it still calls resolve_provider_client and fails in hermetic CI. Same 31 call sites, now with both kwargs.
This commit is contained in:
parent
5d179b9777
commit
6c56d60d82
6 changed files with 32 additions and 0 deletions
|
|
@ -29,6 +29,7 @@ class TestFlushDeduplication:
|
||||||
with patch.dict(os.environ, {"OPENROUTER_API_KEY": "test-key"}):
|
with patch.dict(os.environ, {"OPENROUTER_API_KEY": "test-key"}):
|
||||||
from run_agent import AIAgent
|
from run_agent import AIAgent
|
||||||
agent = AIAgent(
|
agent = AIAgent(
|
||||||
|
api_key="test-key",
|
||||||
base_url="https://openrouter.ai/api/v1",
|
base_url="https://openrouter.ai/api/v1",
|
||||||
model="test/model",
|
model="test/model",
|
||||||
quiet_mode=True,
|
quiet_mode=True,
|
||||||
|
|
@ -272,6 +273,7 @@ class TestFlushIdxInit:
|
||||||
with patch.dict(os.environ, {"OPENROUTER_API_KEY": "test-key"}):
|
with patch.dict(os.environ, {"OPENROUTER_API_KEY": "test-key"}):
|
||||||
from run_agent import AIAgent
|
from run_agent import AIAgent
|
||||||
agent = AIAgent(
|
agent = AIAgent(
|
||||||
|
api_key="test-key",
|
||||||
base_url="https://openrouter.ai/api/v1",
|
base_url="https://openrouter.ai/api/v1",
|
||||||
model="test/model",
|
model="test/model",
|
||||||
quiet_mode=True,
|
quiet_mode=True,
|
||||||
|
|
@ -285,6 +287,7 @@ class TestFlushIdxInit:
|
||||||
with patch.dict(os.environ, {"OPENROUTER_API_KEY": "test-key"}):
|
with patch.dict(os.environ, {"OPENROUTER_API_KEY": "test-key"}):
|
||||||
from run_agent import AIAgent
|
from run_agent import AIAgent
|
||||||
agent = AIAgent(
|
agent = AIAgent(
|
||||||
|
api_key="test-key",
|
||||||
base_url="https://openrouter.ai/api/v1",
|
base_url="https://openrouter.ai/api/v1",
|
||||||
model="test/model",
|
model="test/model",
|
||||||
quiet_mode=True,
|
quiet_mode=True,
|
||||||
|
|
|
||||||
|
|
@ -37,6 +37,7 @@ class TestFlushAfterCompression:
|
||||||
with patch.dict(os.environ, {"OPENROUTER_API_KEY": "test-key"}):
|
with patch.dict(os.environ, {"OPENROUTER_API_KEY": "test-key"}):
|
||||||
from run_agent import AIAgent
|
from run_agent import AIAgent
|
||||||
agent = AIAgent(
|
agent = AIAgent(
|
||||||
|
api_key="test-key",
|
||||||
base_url="https://openrouter.ai/api/v1",
|
base_url="https://openrouter.ai/api/v1",
|
||||||
model="test/model",
|
model="test/model",
|
||||||
quiet_mode=True,
|
quiet_mode=True,
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,7 @@ from run_agent import AIAgent
|
||||||
def test_create_openai_client_does_not_mutate_input_kwargs(mock_openai):
|
def test_create_openai_client_does_not_mutate_input_kwargs(mock_openai):
|
||||||
mock_openai.return_value = MagicMock()
|
mock_openai.return_value = MagicMock()
|
||||||
agent = AIAgent(
|
agent = AIAgent(
|
||||||
|
api_key="test-key",
|
||||||
base_url="https://openrouter.ai/api/v1",
|
base_url="https://openrouter.ai/api/v1",
|
||||||
model="test/model",
|
model="test/model",
|
||||||
quiet_mode=True,
|
quiet_mode=True,
|
||||||
|
|
|
||||||
|
|
@ -23,6 +23,7 @@ from run_agent import AIAgent
|
||||||
|
|
||||||
def _make_agent():
|
def _make_agent():
|
||||||
return AIAgent(
|
return AIAgent(
|
||||||
|
api_key="test-key",
|
||||||
base_url="https://openrouter.ai/api/v1",
|
base_url="https://openrouter.ai/api/v1",
|
||||||
model="test/model",
|
model="test/model",
|
||||||
quiet_mode=True,
|
quiet_mode=True,
|
||||||
|
|
|
||||||
|
|
@ -61,6 +61,8 @@ def _make_agent(monkeypatch, provider, api_mode="chat_completions", base_url="ht
|
||||||
if model:
|
if model:
|
||||||
kwargs["model"] = model
|
kwargs["model"] = model
|
||||||
base_url="https://openrouter.ai/api/v1",
|
base_url="https://openrouter.ai/api/v1",
|
||||||
|
api_key="test-key",
|
||||||
|
base_url="https://openrouter.ai/api/v1",
|
||||||
return AIAgent(**kwargs)
|
return AIAgent(**kwargs)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -80,6 +80,7 @@ class TestStreamingAccumulator:
|
||||||
mock_create.return_value = mock_client
|
mock_create.return_value = mock_client
|
||||||
|
|
||||||
agent = AIAgent(
|
agent = AIAgent(
|
||||||
|
api_key="test-key",
|
||||||
base_url="https://openrouter.ai/api/v1",
|
base_url="https://openrouter.ai/api/v1",
|
||||||
model="test/model",
|
model="test/model",
|
||||||
quiet_mode=True,
|
quiet_mode=True,
|
||||||
|
|
@ -121,6 +122,7 @@ class TestStreamingAccumulator:
|
||||||
mock_create.return_value = mock_client
|
mock_create.return_value = mock_client
|
||||||
|
|
||||||
agent = AIAgent(
|
agent = AIAgent(
|
||||||
|
api_key="test-key",
|
||||||
base_url="https://openrouter.ai/api/v1",
|
base_url="https://openrouter.ai/api/v1",
|
||||||
model="test/model",
|
model="test/model",
|
||||||
quiet_mode=True,
|
quiet_mode=True,
|
||||||
|
|
@ -169,6 +171,7 @@ class TestStreamingAccumulator:
|
||||||
mock_create.return_value = mock_client
|
mock_create.return_value = mock_client
|
||||||
|
|
||||||
agent = AIAgent(
|
agent = AIAgent(
|
||||||
|
api_key="test-key",
|
||||||
base_url="https://openrouter.ai/api/v1",
|
base_url="https://openrouter.ai/api/v1",
|
||||||
model="test/model",
|
model="test/model",
|
||||||
quiet_mode=True,
|
quiet_mode=True,
|
||||||
|
|
@ -208,6 +211,7 @@ class TestStreamingAccumulator:
|
||||||
mock_create.return_value = mock_client
|
mock_create.return_value = mock_client
|
||||||
|
|
||||||
agent = AIAgent(
|
agent = AIAgent(
|
||||||
|
api_key="test-key",
|
||||||
base_url="https://openrouter.ai/api/v1",
|
base_url="https://openrouter.ai/api/v1",
|
||||||
model="test/model",
|
model="test/model",
|
||||||
quiet_mode=True,
|
quiet_mode=True,
|
||||||
|
|
@ -249,6 +253,7 @@ class TestStreamingCallbacks:
|
||||||
mock_create.return_value = mock_client
|
mock_create.return_value = mock_client
|
||||||
|
|
||||||
agent = AIAgent(
|
agent = AIAgent(
|
||||||
|
api_key="test-key",
|
||||||
base_url="https://openrouter.ai/api/v1",
|
base_url="https://openrouter.ai/api/v1",
|
||||||
model="test/model",
|
model="test/model",
|
||||||
quiet_mode=True,
|
quiet_mode=True,
|
||||||
|
|
@ -282,6 +287,7 @@ class TestStreamingCallbacks:
|
||||||
mock_create.return_value = mock_client
|
mock_create.return_value = mock_client
|
||||||
|
|
||||||
agent = AIAgent(
|
agent = AIAgent(
|
||||||
|
api_key="test-key",
|
||||||
base_url="https://openrouter.ai/api/v1",
|
base_url="https://openrouter.ai/api/v1",
|
||||||
model="test/model",
|
model="test/model",
|
||||||
quiet_mode=True,
|
quiet_mode=True,
|
||||||
|
|
@ -314,6 +320,7 @@ class TestStreamingCallbacks:
|
||||||
mock_create.return_value = mock_client
|
mock_create.return_value = mock_client
|
||||||
|
|
||||||
agent = AIAgent(
|
agent = AIAgent(
|
||||||
|
api_key="test-key",
|
||||||
base_url="https://openrouter.ai/api/v1",
|
base_url="https://openrouter.ai/api/v1",
|
||||||
model="test/model",
|
model="test/model",
|
||||||
quiet_mode=True,
|
quiet_mode=True,
|
||||||
|
|
@ -353,6 +360,7 @@ class TestStreamingCallbacks:
|
||||||
mock_create.return_value = mock_client
|
mock_create.return_value = mock_client
|
||||||
|
|
||||||
agent = AIAgent(
|
agent = AIAgent(
|
||||||
|
api_key="test-key",
|
||||||
base_url="https://openrouter.ai/api/v1",
|
base_url="https://openrouter.ai/api/v1",
|
||||||
model="test/model",
|
model="test/model",
|
||||||
quiet_mode=True,
|
quiet_mode=True,
|
||||||
|
|
@ -389,6 +397,7 @@ class TestStreamingCallbacks:
|
||||||
mock_create.return_value = mock_client
|
mock_create.return_value = mock_client
|
||||||
|
|
||||||
agent = AIAgent(
|
agent = AIAgent(
|
||||||
|
api_key="test-key",
|
||||||
base_url="https://openrouter.ai/api/v1",
|
base_url="https://openrouter.ai/api/v1",
|
||||||
model="test/model",
|
model="test/model",
|
||||||
quiet_mode=True,
|
quiet_mode=True,
|
||||||
|
|
@ -437,6 +446,7 @@ class TestStreamingFallback:
|
||||||
mock_create.return_value = mock_client
|
mock_create.return_value = mock_client
|
||||||
|
|
||||||
agent = AIAgent(
|
agent = AIAgent(
|
||||||
|
api_key="test-key",
|
||||||
base_url="https://openrouter.ai/api/v1",
|
base_url="https://openrouter.ai/api/v1",
|
||||||
model="test/model",
|
model="test/model",
|
||||||
quiet_mode=True,
|
quiet_mode=True,
|
||||||
|
|
@ -465,6 +475,7 @@ class TestStreamingFallback:
|
||||||
mock_create.return_value = mock_client
|
mock_create.return_value = mock_client
|
||||||
|
|
||||||
agent = AIAgent(
|
agent = AIAgent(
|
||||||
|
api_key="test-key",
|
||||||
base_url="https://openrouter.ai/api/v1",
|
base_url="https://openrouter.ai/api/v1",
|
||||||
model="test/model",
|
model="test/model",
|
||||||
quiet_mode=True,
|
quiet_mode=True,
|
||||||
|
|
@ -488,6 +499,7 @@ class TestStreamingFallback:
|
||||||
mock_create.return_value = mock_client
|
mock_create.return_value = mock_client
|
||||||
|
|
||||||
agent = AIAgent(
|
agent = AIAgent(
|
||||||
|
api_key="test-key",
|
||||||
base_url="https://openrouter.ai/api/v1",
|
base_url="https://openrouter.ai/api/v1",
|
||||||
model="test/model",
|
model="test/model",
|
||||||
quiet_mode=True,
|
quiet_mode=True,
|
||||||
|
|
@ -512,6 +524,7 @@ class TestStreamingFallback:
|
||||||
mock_create.return_value = mock_client
|
mock_create.return_value = mock_client
|
||||||
|
|
||||||
agent = AIAgent(
|
agent = AIAgent(
|
||||||
|
api_key="test-key",
|
||||||
base_url="https://openrouter.ai/api/v1",
|
base_url="https://openrouter.ai/api/v1",
|
||||||
model="test/model",
|
model="test/model",
|
||||||
quiet_mode=True,
|
quiet_mode=True,
|
||||||
|
|
@ -555,6 +568,7 @@ class TestStreamingFallback:
|
||||||
mock_create.return_value = mock_client
|
mock_create.return_value = mock_client
|
||||||
|
|
||||||
agent = AIAgent(
|
agent = AIAgent(
|
||||||
|
api_key="test-key",
|
||||||
base_url="https://openrouter.ai/api/v1",
|
base_url="https://openrouter.ai/api/v1",
|
||||||
model="test/model",
|
model="test/model",
|
||||||
quiet_mode=True,
|
quiet_mode=True,
|
||||||
|
|
@ -591,6 +605,7 @@ class TestStreamingFallback:
|
||||||
mock_create.return_value = mock_client
|
mock_create.return_value = mock_client
|
||||||
|
|
||||||
agent = AIAgent(
|
agent = AIAgent(
|
||||||
|
api_key="test-key",
|
||||||
base_url="https://openrouter.ai/api/v1",
|
base_url="https://openrouter.ai/api/v1",
|
||||||
model="test/model",
|
model="test/model",
|
||||||
quiet_mode=True,
|
quiet_mode=True,
|
||||||
|
|
@ -634,6 +649,7 @@ class TestReasoningStreaming:
|
||||||
mock_create.return_value = mock_client
|
mock_create.return_value = mock_client
|
||||||
|
|
||||||
agent = AIAgent(
|
agent = AIAgent(
|
||||||
|
api_key="test-key",
|
||||||
base_url="https://openrouter.ai/api/v1",
|
base_url="https://openrouter.ai/api/v1",
|
||||||
model="test/model",
|
model="test/model",
|
||||||
quiet_mode=True,
|
quiet_mode=True,
|
||||||
|
|
@ -662,6 +678,7 @@ class TestHasStreamConsumers:
|
||||||
def test_no_consumers(self):
|
def test_no_consumers(self):
|
||||||
from run_agent import AIAgent
|
from run_agent import AIAgent
|
||||||
agent = AIAgent(
|
agent = AIAgent(
|
||||||
|
api_key="test-key",
|
||||||
base_url="https://openrouter.ai/api/v1",
|
base_url="https://openrouter.ai/api/v1",
|
||||||
model="test/model",
|
model="test/model",
|
||||||
quiet_mode=True,
|
quiet_mode=True,
|
||||||
|
|
@ -673,6 +690,7 @@ class TestHasStreamConsumers:
|
||||||
def test_delta_callback_set(self):
|
def test_delta_callback_set(self):
|
||||||
from run_agent import AIAgent
|
from run_agent import AIAgent
|
||||||
agent = AIAgent(
|
agent = AIAgent(
|
||||||
|
api_key="test-key",
|
||||||
base_url="https://openrouter.ai/api/v1",
|
base_url="https://openrouter.ai/api/v1",
|
||||||
model="test/model",
|
model="test/model",
|
||||||
quiet_mode=True,
|
quiet_mode=True,
|
||||||
|
|
@ -685,6 +703,7 @@ class TestHasStreamConsumers:
|
||||||
def test_stream_callback_set(self):
|
def test_stream_callback_set(self):
|
||||||
from run_agent import AIAgent
|
from run_agent import AIAgent
|
||||||
agent = AIAgent(
|
agent = AIAgent(
|
||||||
|
api_key="test-key",
|
||||||
base_url="https://openrouter.ai/api/v1",
|
base_url="https://openrouter.ai/api/v1",
|
||||||
model="test/model",
|
model="test/model",
|
||||||
quiet_mode=True,
|
quiet_mode=True,
|
||||||
|
|
@ -707,6 +726,7 @@ class TestCodexStreamCallbacks:
|
||||||
deltas = []
|
deltas = []
|
||||||
|
|
||||||
agent = AIAgent(
|
agent = AIAgent(
|
||||||
|
api_key="test-key",
|
||||||
base_url="https://openrouter.ai/api/v1",
|
base_url="https://openrouter.ai/api/v1",
|
||||||
model="test/model",
|
model="test/model",
|
||||||
quiet_mode=True,
|
quiet_mode=True,
|
||||||
|
|
@ -749,6 +769,7 @@ class TestCodexStreamCallbacks:
|
||||||
from run_agent import AIAgent
|
from run_agent import AIAgent
|
||||||
|
|
||||||
agent = AIAgent(
|
agent = AIAgent(
|
||||||
|
api_key="test-key",
|
||||||
base_url="https://openrouter.ai/api/v1",
|
base_url="https://openrouter.ai/api/v1",
|
||||||
model="test/model",
|
model="test/model",
|
||||||
quiet_mode=True,
|
quiet_mode=True,
|
||||||
|
|
@ -813,6 +834,7 @@ class TestCodexStreamCallbacks:
|
||||||
)
|
)
|
||||||
|
|
||||||
agent = AIAgent(
|
agent = AIAgent(
|
||||||
|
api_key="test-key",
|
||||||
base_url="https://openrouter.ai/api/v1",
|
base_url="https://openrouter.ai/api/v1",
|
||||||
model="test/model",
|
model="test/model",
|
||||||
quiet_mode=True,
|
quiet_mode=True,
|
||||||
|
|
@ -832,6 +854,7 @@ class TestCodexStreamCallbacks:
|
||||||
from run_agent import AIAgent
|
from run_agent import AIAgent
|
||||||
|
|
||||||
agent = AIAgent(
|
agent = AIAgent(
|
||||||
|
api_key="test-key",
|
||||||
base_url="https://openrouter.ai/api/v1",
|
base_url="https://openrouter.ai/api/v1",
|
||||||
model="test/model",
|
model="test/model",
|
||||||
quiet_mode=True,
|
quiet_mode=True,
|
||||||
|
|
@ -884,6 +907,7 @@ class TestAnthropicStreamCallbacks:
|
||||||
from run_agent import AIAgent
|
from run_agent import AIAgent
|
||||||
|
|
||||||
agent = AIAgent(
|
agent = AIAgent(
|
||||||
|
api_key="test-key",
|
||||||
base_url="https://openrouter.ai/api/v1",
|
base_url="https://openrouter.ai/api/v1",
|
||||||
model="test/model",
|
model="test/model",
|
||||||
quiet_mode=True,
|
quiet_mode=True,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue