fix anthropic key error msg

This commit is contained in:
AI Christianson 2025-02-24 15:35:45 -05:00
parent 7f85e93431
commit 6591400ad6
2 changed files with 54 additions and 3 deletions

View File

@ -157,9 +157,12 @@ class AnthropicStrategy(ProviderStrategy):
os.environ["EXPERT_ANTHROPIC_API_KEY"] = base_key
key = base_key
if not key:
missing.append(
"EXPERT_ANTHROPIC_API_KEY environment variable is not set"
)
# If neither expert nor base key is set, show base key message
base_key = os.environ.get("ANTHROPIC_API_KEY")
if not base_key:
missing.append("ANTHROPIC_API_KEY environment variable is not set")
else:
missing.append("EXPERT_ANTHROPIC_API_KEY environment variable is not set")
else:
key = os.environ.get("ANTHROPIC_API_KEY")
if not key:

View File

@ -0,0 +1,48 @@
import os
from dataclasses import dataclass
from typing import Any, Optional
import pytest
from ra_aid.provider_strategy import AnthropicStrategy
@pytest.fixture
def clean_env():
"""Remove relevant environment variables before each test."""
# Save existing values
saved_vars = {}
for var in ['ANTHROPIC_API_KEY', 'EXPERT_ANTHROPIC_API_KEY',
'ANTHROPIC_MODEL', 'EXPERT_ANTHROPIC_MODEL']:
saved_vars[var] = os.environ.get(var)
if var in os.environ:
del os.environ[var]
yield
# Restore saved values
for var, value in saved_vars.items():
if value is not None:
os.environ[var] = value
elif var in os.environ:
del os.environ[var]
@dataclass
class MockArgs:
"""Mock arguments class for testing."""
expert_provider: str
expert_model: Optional[str] = None
def test_anthropic_expert_validation_message(clean_env):
"""Test that validation message refers to base key when neither key exists."""
strategy = AnthropicStrategy()
args = MockArgs(expert_provider="anthropic")
result = strategy.validate(args)
assert not result.valid
assert len(result.missing_vars) > 0
assert "ANTHROPIC_API_KEY environment variable is not set" in result.missing_vars[0]
assert "EXPERT_ANTHROPIC_API_KEY" not in result.missing_vars[0]