import pytest
import os
from pyr.core.config import PyrConfig, AIProvider
def test_config_creation():
config = PyrConfig()
assert config.provider == AIProvider.OPENAI
assert config.model == "gpt-4o-mini"
assert config.verbose is True
def test_config_with_overrides():
config = PyrConfig(
provider=AIProvider.ANTHROPIC,
model="claude-3-5-haiku-20241022",
temperature=0.5
)
assert config.provider == AIProvider.ANTHROPIC
assert config.model == "claude-3-5-haiku-20241022"
assert config.temperature == 0.5
def test_config_urls():
config = PyrConfig(provider=AIProvider.OPENAI)
assert "openai.com" in config.get_completions_url()
assert "openai.com" in config.get_models_url()
def test_config_headers():
config = PyrConfig(api_key="test-key", provider=AIProvider.OPENAI)
headers = config.get_auth_headers()
assert "Authorization" in headers
assert headers["Authorization"] == "Bearer test-key"
def test_anthropic_headers():
config = PyrConfig(api_key="test-key", provider=AIProvider.ANTHROPIC)
headers = config.get_auth_headers()
assert "x-api-key" in headers
assert headers["x-api-key"] == "test-key"
def test_env_var_override(monkeypatch):
monkeypatch.setenv("R_MODEL", "test-model")
monkeypatch.setenv("R_PROVIDER", "anthropic")
config = PyrConfig()
assert config.model == "test-model"
assert config.provider == AIProvider.ANTHROPIC