Files
wehub-resource-sync 2cab53bc94
Test Vector Database Adaptors / Test MCP Vector DB Tools (push) Has been cancelled
Tests / Code Quality (Ruff & Mypy) (push) Has been cancelled
Tests / Fast Unit Tests (parallel) (macos-latest, 3.11) (push) Has been cancelled
Tests / Fast Unit Tests (parallel) (macos-latest, 3.12) (push) Has been cancelled
Tests / Tests (push) Has been cancelled
Docker Publish / Build and Push Docker Images (map[description:Skill Seekers CLI - Convert documentation to AI skills dockerfile:Dockerfile name:skill-seekers]) (push) Has been cancelled
Docker Publish / Build and Push Docker Images (map[description:Skill Seekers MCP Server - 25 tools for AI assistants dockerfile:Dockerfile.mcp name:skill-seekers-mcp]) (push) Has been cancelled
Docker Publish / Test Docker Images (push) Has been cancelled
Tests / Fast Unit Tests (parallel) (ubuntu-latest, 3.10) (push) Has been cancelled
Tests / Fast Unit Tests (parallel) (ubuntu-latest, 3.11) (push) Has been cancelled
Tests / Fast Unit Tests (parallel) (ubuntu-latest, 3.12) (push) Has been cancelled
Tests / Serial / Integration / E2E Tests (push) Has been cancelled
Tests / MCP Server Tests (push) Has been cancelled
Test Vector Database Adaptors / Test chroma Adaptor (push) Has been cancelled
Test Vector Database Adaptors / Test faiss Adaptor (push) Has been cancelled
Test Vector Database Adaptors / Test qdrant Adaptor (push) Has been cancelled
Test Vector Database Adaptors / Test weaviate Adaptor (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:46:28 +08:00

51 lines
1.9 KiB
Python

"""Tests for ConfigManager API-key handling.
The env-var fallback in get_api_key() is derived from the agent_client
provider registry (API_PROVIDERS) so key aliases and newly registered
providers stay in sync with AgentClient.detect_api_key().
"""
import pytest
from skill_seekers.cli.agent_client import API_PROVIDERS
from skill_seekers.cli.config_manager import ConfigManager
ALL_KEY_VARS = [var for p in API_PROVIDERS for var in p["env_vars"]]
@pytest.fixture
def manager(tmp_path, monkeypatch):
monkeypatch.setattr(ConfigManager, "CONFIG_DIR", tmp_path / "cfg")
monkeypatch.setattr(ConfigManager, "CONFIG_FILE", tmp_path / "cfg" / "config.json")
monkeypatch.setattr(ConfigManager, "PROGRESS_DIR", tmp_path / "prog")
for var in ALL_KEY_VARS:
monkeypatch.delenv(var, raising=False)
return ConfigManager()
class TestGetApiKey:
@pytest.mark.parametrize(
"provider,env_var",
[(p["provider"], var) for p in API_PROVIDERS for var in p["env_vars"]],
)
def test_every_registry_env_var_honored(self, manager, monkeypatch, provider, env_var):
"""Each env var in API_PROVIDERS works, including aliases like
ANTHROPIC_AUTH_TOKEN (parity with AgentClient.detect_api_key)."""
monkeypatch.setenv(env_var, "env-key-123")
assert manager.get_api_key(provider) == "env-key-123"
def test_env_var_beats_config_file(self, manager, monkeypatch):
manager.set_api_key("openai", "config-key")
monkeypatch.setenv("OPENAI_API_KEY", "env-key")
assert manager.get_api_key("openai") == "env-key"
def test_config_file_when_no_env(self, manager):
manager.set_api_key("google", "config-key")
assert manager.get_api_key("google") == "config-key"
def test_missing_key_returns_none(self, manager):
assert manager.get_api_key("anthropic") is None
def test_unknown_provider_returns_none(self, manager):
assert manager.get_api_key("not-a-provider") is None