feat: add Gemini-powered birdseye rendering

This commit is contained in:
sinmb79
2026-04-04 19:29:27 +09:00
parent 800c7b6fa7
commit 5b96be3104
20 changed files with 1006 additions and 396 deletions
+28
View File
@@ -45,15 +45,18 @@ def test_get_settings_uses_secure_store_when_env_missing(tmp_path: Path, monkeyp
lambda path: {
"DATA_GO_KR_API_KEY": "secure-data-key",
"VWORLD_API_KEY": "secure-vworld-key",
"GEMINI_API_KEY": "secure-gemini-key",
},
)
monkeypatch.delenv("DATA_GO_KR_API_KEY", raising=False)
monkeypatch.delenv("VWORLD_API_KEY", raising=False)
monkeypatch.delenv("GEMINI_API_KEY", raising=False)
settings = config.get_settings()
assert settings.data_go_kr_api_key == "secure-data-key"
assert settings.vworld_api_key == "secure-vworld-key"
assert settings.gemini_api_key == "secure-gemini-key"
def test_get_settings_prefers_env_values_over_secure_store(tmp_path: Path, monkeypatch) -> None:
@@ -65,12 +68,37 @@ def test_get_settings_prefers_env_values_over_secure_store(tmp_path: Path, monke
lambda path: {
"DATA_GO_KR_API_KEY": "secure-data-key",
"VWORLD_API_KEY": "secure-vworld-key",
"GEMINI_API_KEY": "secure-gemini-key",
},
)
monkeypatch.setenv("DATA_GO_KR_API_KEY", "env-data-key")
monkeypatch.setenv("VWORLD_API_KEY", "env-vworld-key")
monkeypatch.setenv("GEMINI_API_KEY", "env-gemini-key")
settings = config.get_settings()
assert settings.data_go_kr_api_key == "env-data-key"
assert settings.vworld_api_key == "env-vworld-key"
assert settings.gemini_api_key == "env-gemini-key"
def test_settings_has_gemini_api_key(monkeypatch) -> None:
monkeypatch.delenv("GEMINI_API_KEY", raising=False)
settings = config.Settings()
assert hasattr(settings, "gemini_api_key")
assert settings.gemini_api_key == ""
def test_check_api_keys_includes_gemini_when_missing(tmp_path: Path, monkeypatch) -> None:
monkeypatch.setattr(config, "BASE_DIR", tmp_path)
monkeypatch.setattr(config, "load_local_env", lambda: None)
monkeypatch.setattr(config, "_load_secure_api_keys", lambda path: {})
monkeypatch.delenv("DATA_GO_KR_API_KEY", raising=False)
monkeypatch.delenv("VWORLD_API_KEY", raising=False)
monkeypatch.delenv("GEMINI_API_KEY", raising=False)
missing = config.check_api_keys()
assert "GEMINI_API_KEY" in missing