Local branch had diverged from origin/master (sibling commits on the same base). Rewrote local history linearly on top of origin/master, folding in all local content: exa/hot-platform discovery hunters, leaks ledger, nightly sweep orchestrator, updated .gitignore and skill docs, plus the latest hunt output and vault state. Remote-only files (vault keys, channel scripts) were restored rather than dropped, so the resulting tree is a full union of both sides.
1 line
5.9 KiB
JSON
1 line
5.9 KiB
JSON
{"repo": "0mart00/diogeownaiagent", "files": {"free-claude-code/tests/providers/test_registry.py": {"4479d2c61b31b78a038b71ddc3e1689b595e9ef6": {"t": 1786068245.3649292, "n": 5549, "h": "5ee436840bc50f1b", "c": "import subprocess\nimport sys\nfrom unittest.mock import AsyncMock, MagicMock, patch\n\nimport pytest\n\nfrom config.nim import NimSettings\nfrom config.provider_ids import SUPPORTED_PROVIDER_IDS\nfrom providers.deepseek import DeepSeekProvider\nfrom providers.exceptions import UnknownProviderTypeError\nfrom providers.llamacpp import LlamaCppProvider\nfrom providers.lmstudio import LMStudioProvider\nfrom providers.nvidia_nim import NvidiaNimProvider\nfrom providers.ollama import OllamaProvider\nfrom providers.open_router import OpenRouterProvider\nfrom providers.opencode import OpenCodeProvider\nfrom providers.registry import (\n PROVIDER_DESCRIPTORS,\n ProviderRegistry,\n create_provider,\n)\nfrom providers.wafer import WaferProvider\nfrom providers.zai import ZaiProvider\n\n\ndef _make_settings(**overrides):\n mock = MagicMock()\n mock.model = \"nvidia_nim/meta/llama3\"\n mock.provider_type = \"nvidia_nim\"\n mock.nvidia_nim_api_key = \"test_key\"\n mock.open_router_api_key = \"test_openrouter_key\"\n mock.deepseek_api_key = \"test_deepseek_key\"\n mock.wafer_api_key = \"test_wafer_key\"\n mock.opencode_api_key = \"test_opencode_key\"\n mock.zai_api_key = \"test_zai_key\"\n mock.lm_studio_base_url = \"http://localhost:1234/v1\"\n mock.llamacpp_base_url = \"http://localhost:8080/v1\"\n mock.ollama_base_url = \"http://localhost:11434\"\n mock.nvidia_nim_proxy = \"\"\n mock.open_router_proxy = \"\"\n mock.lmstudio_proxy = \"\"\n mock.llamacpp_proxy = \"\"\n mock.kimi_proxy = \"\"\n mock.wafer_proxy = \"\"\n mock.opencode_proxy = \"\"\n mock.zai_proxy = \"\"\n mock.provider_rate_limit = 40\n mock.provider_rate_window = 60\n mock.provider_max_concurrency = 5\n mock.http_read_timeout = 300.0\n mock.http_write_timeout = 10.0\n mock.http_connect_timeout = 10.0\n mock.enable_model_thinking = True\n mock.nim = NimSettings()\n for key, value in overrides.items():\n setattr(mock, key, value)\n return mock\n\n\ndef test_importing_registry_does_not_eager_load_other_adapters() -> None:\n \"\"\"Registry metadata must not import every provider adapter up front.\"\"\"\n code = (\n \"import sys\\n\"\n \"import providers.registry\\n\"\n \"assert 'providers.open_router' not in sys.modules\\n\"\n )\n proc = subprocess.run(\n [sys.executable, \"-c\", code],\n check=False,\n capture_output=True,\n text=True,\n )\n assert proc.returncode == 0, proc.stderr or proc.stdout\n\n\ndef test_descriptors_cover_advertised_provider_ids():\n assert set(PROVIDER_DESCRIPTORS) == set(SUPPORTED_PROVIDER_IDS)\n for descriptor in PROVIDER_DESCRIPTORS.values():\n assert descriptor.provider_id\n assert descriptor.transport_type in {\"openai_chat\", \"anthropic_messages\"}\n assert descriptor.capabilities\n\n\ndef test_ollama_descriptor_uses_native_anthropic_transport():\n descriptor = PROVIDER_DESCRIPTORS[\"ollama\"]\n\n assert descriptor.transport_type == \"anthropic_messages\"\n assert descriptor.default_base_url == \"http://localhost:11434\"\n assert \"native_anthropic\" in descriptor.capabilities\n\n\ndef test_create_provider_uses_native_openrouter_by_default():\n with patch(\"httpx.AsyncClient\"):\n provider = create_provider(\"open_router\", _make_settings())\n\n assert isinstance(provider, OpenRouterProvider)\n\n\ndef test_create_provider_instantiates_each_builtin():\n settings = _make_settings()\n cases = {\n \"nvidia_nim\": NvidiaNimProvider,\n \"deepseek\": DeepSeekProvider,\n \"lmstudio\": LMStudioProvider,\n \"llamacpp\": LlamaCppProvider,\n \"ollama\": OllamaProvider,\n \"wafer\": WaferProvider,\n \"opencode\": OpenCodeProvider,\n \"zai\": ZaiProvider,\n }\n\n with (\n patch(\"providers.openai_compat.AsyncOpenAI\"),\n patch(\"httpx.AsyncClient\"),\n ):\n for provider_id, provider_cls in cases.items():\n assert isinstance(create_provider(provider_id, settings), provider_cls)\n\n\ndef test_provider_registry_caches_by_provider_id():\n registry = ProviderRegistry()\n settings = _make_settings()\n\n with patch(\"providers.openai_compat.AsyncOpenAI\"):\n first = registry.get(\"nvidia_nim\", settings)\n second = registry.get(\"nvidia_nim\", settings)\n\n assert first is second\n\n\ndef test_unknown_provider_raises_unknown_provider_type_error():\n with pytest.raises(UnknownProviderTypeError, match=\"Unknown provider_type\"):\n create_provider(\"unknown\", _make_settings())\n\n\n@pytest.mark.asyncio\nasync def test_provider_registry_cleanup_runs_all_even_if_one_fails() -> None:\n \"\"\"Every provider gets cleanup; cache is cleared even when one raises.\"\"\"\n reg = ProviderRegistry()\n p1 = MagicMock()\n p1.cleanup = AsyncMock(side_effect=RuntimeError(\"first\"))\n p2 = MagicMock()\n p2.cleanup = AsyncMock()\n reg._providers[\"a\"] = p1\n reg._providers[\"b\"] = p2\n with pytest.raises(RuntimeError, match=\"first\"):\n await reg.cleanup()\n p1.cleanup.assert_awaited_once()\n p2.cleanup.assert_awaited_once()\n assert reg._providers == {}\n\n\n@pytest.mark.asyncio\nasync def test_provider_registry_cleanup_exceptiongroup_on_multiple_failures() -> None:\n reg = ProviderRegistry()\n p1 = MagicMock()\n p1.cleanup = AsyncMock(side_effect=RuntimeError(\"a\"))\n p2 = MagicMock()\n p2.cleanup = AsyncMock(side_effect=RuntimeError(\"b\"))\n reg._providers[\"x\"] = p1\n reg._providers[\"y\"] = p2\n with pytest.raises(ExceptionGroup) as exc_info:\n await reg.cleanup()\n assert len(exc_info.value.exceptions) == 2\n assert reg._providers == {}\n"}}}} |