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

26
tests/test_setup_keys.py Normal file
View File

@@ -0,0 +1,26 @@
from __future__ import annotations
from pathlib import Path
from civilplan_mcp import setup_keys
def test_main_prompts_and_saves_gemini_api_key(monkeypatch, tmp_path: Path) -> None:
prompted_values = iter(["data-key", "vworld-key", "gemini-key"])
saved_payload: dict[str, str] = {}
monkeypatch.setattr(setup_keys, "_prompt_value", lambda name, current="": next(prompted_values))
monkeypatch.setattr(
setup_keys,
"save_api_keys",
lambda payload: saved_payload.update(payload) or tmp_path / "api-keys.dpapi.json",
)
exit_code = setup_keys.main([])
assert exit_code == 0
assert saved_payload == {
"DATA_GO_KR_API_KEY": "data-key",
"VWORLD_API_KEY": "vworld-key",
"GEMINI_API_KEY": "gemini-key",
}