from fam_edge.model_adapters.gemini_adapter import GeminiAdapter def _cfg(**overrides): base = { "provider": "gemini", "model_name": "gemini-flash-latest", "api_key": "key-primary", "circuit_breaker": {"enabled": False}, } base.update(overrides) return base def test_single_key_backward_compat(): a = GeminiAdapter(_cfg()) assert a.api_keys == ["key-primary"] assert a.api_key == "key-primary" def test_extra_keys_appended_in_order(): a = GeminiAdapter(_cfg(extra_api_keys=["key-2", "key-3", "key-4"])) assert a.api_keys == ["key-primary", "key-2", "key-3", "key-4"] def test_extra_keys_dedup_against_primary(): a = GeminiAdapter(_cfg(extra_api_keys=["key-primary", "key-2"])) assert a.api_keys == ["key-primary", "key-2"] def test_missing_env_var_keys_are_dropped(): """extra_api_keys 里未设置的 ${ENV_VAR} 解析为空字符串,不应该混进 api_keys 列表。""" a = GeminiAdapter(_cfg(extra_api_keys=["${SOME_UNSET_GEMINI_KEY_VAR}", "key-2"])) assert a.api_keys == ["key-primary", "key-2"] def test_no_keys_at_all(): a = GeminiAdapter(_cfg(api_key="")) assert a.api_keys == [] assert a.api_key == ""