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