Files
aiturk-hermes-ide/tests/agent/test_auxiliary_openrouter_max_tokens.py
T

73 lines
2.7 KiB
Python

"""Test that _build_call_kwargs preserves max_tokens for OpenRouter endpoints.
Regression test for #41035: OpenRouter free-tier credits exhausted when
max_tokens was stripped, causing HTTP 402 and fallback to text-only model.
"""
import pytest
from agent.auxiliary_client import _build_call_kwargs
class TestOpenRouterMaxTokens:
"""max_tokens must be included for OpenRouter to prevent free-tier 402."""
def test_openrouter_provider_includes_max_tokens(self):
"""Direct openrouter provider keeps max_tokens."""
kwargs = _build_call_kwargs(
provider="openrouter",
model="openai/gpt-4o-mini",
messages=[{"role": "user", "content": "test"}],
max_tokens=2000,
)
assert kwargs.get("max_tokens") == 2000 or kwargs.get("max_completion_tokens") == 2000
def test_openrouter_base_url_includes_max_tokens(self):
"""Custom endpoint with openrouter.ai base_url keeps max_tokens."""
kwargs = _build_call_kwargs(
provider="openai",
model="gpt-4o-mini",
messages=[{"role": "user", "content": "test"}],
max_tokens=2000,
base_url="https://openrouter.ai/api/v1",
)
assert kwargs.get("max_tokens") == 2000 or kwargs.get("max_completion_tokens") == 2000
def test_generic_provider_omits_max_tokens(self):
"""Generic OpenAI-compatible provider still omits max_tokens."""
kwargs = _build_call_kwargs(
provider="openai",
model="gpt-4o-mini",
messages=[{"role": "user", "content": "test"}],
max_tokens=2000,
)
assert "max_tokens" not in kwargs
def test_anthropic_compat_still_includes_max_tokens(self):
"""Anthropic-compatible endpoints still include max_tokens."""
kwargs = _build_call_kwargs(
provider="minimax",
model="MiniMax-Text-01",
messages=[{"role": "user", "content": "test"}],
max_tokens=4000,
)
assert kwargs["max_tokens"] == 4000
def test_none_max_tokens_never_included(self):
"""max_tokens=None is never added regardless of provider."""
for provider, base_url in [
("openrouter", None),
("openai", "https://openrouter.ai/api/v1"),
("minimax", None),
]:
kwargs = _build_call_kwargs(
provider=provider,
model="test-model",
messages=[{"role": "user", "content": "test"}],
max_tokens=None,
base_url=base_url,
)
assert "max_tokens" not in kwargs, (
f"max_tokens should not be set when None for {provider}"
)