modify gemini template

This commit is contained in:
NINI
2026-04-28 01:51:20 +09:00
parent 949e0ab13c
commit 38291723f0
32 changed files with 523 additions and 320 deletions
+19 -19
View File
@@ -24,12 +24,12 @@ import execute as ex
@pytest.fixture
def tmp_project(tmp_path):
"""phases/, AGENTS.md, docs/ 를 갖춘 임시 프로젝트 구조."""
"""phases/, GEMINI.md, docs/ 를 갖춘 임시 프로젝트 구조."""
phases_dir = tmp_path / "phases"
phases_dir.mkdir()
agents_md = tmp_path / "AGENTS.md"
agents_md.write_text("# Rules\n- rule one\n- rule two", encoding="utf-8")
gemini_md = tmp_path / "GEMINI.md"
gemini_md.write_text("# Rules\n- rule one\n- rule two", encoding="utf-8")
docs_dir = tmp_path / "docs"
docs_dir.mkdir()
@@ -146,7 +146,7 @@ class TestJsonHelpers:
# ---------------------------------------------------------------------------
class TestLoadGuardrails:
def test_loads_agents_md_and_docs(self, executor, tmp_project):
def test_loads_gemini_md_and_docs(self, executor, tmp_project):
with patch.object(ex, "ROOT", tmp_project):
result = executor._load_guardrails()
assert "# Rules" in result
@@ -166,11 +166,11 @@ class TestLoadGuardrails:
guide_pos = result.index("guide")
assert arch_pos < guide_pos
def test_no_agents_md(self, executor, tmp_project):
(tmp_project / "AGENTS.md").unlink()
def test_no_gemini_md(self, executor, tmp_project):
(tmp_project / "GEMINI.md").unlink()
with patch.object(ex, "ROOT", tmp_project):
result = executor._load_guardrails()
assert "AGENTS.md" not in result
assert "GEMINI.md" not in result
assert "Architecture" in result
def test_no_docs_dir(self, executor, tmp_project):
@@ -420,24 +420,24 @@ class TestCommitStep:
# ---------------------------------------------------------------------------
# _invoke_codex (mocked)
# _invoke_gemini (mocked)
# ---------------------------------------------------------------------------
class TestInvokeCodex:
def test_invokes_codex_with_correct_args(self, executor):
class TestInvokeGemini:
def test_invokes_gemini_with_correct_args(self, executor):
mock_result = MagicMock(returncode=0, stdout='{"result": "ok"}', stderr="")
step = {"step": 2, "name": "ui"}
preamble = "PREAMBLE\n"
with patch("subprocess.run", return_value=mock_result) as mock_run:
output = executor._invoke_codex(step, preamble)
output = executor._invoke_gemini(step, preamble)
cmd = mock_run.call_args[0][0]
assert cmd[:2] == ["codex", "exec"]
assert "--skip-git-repo-check" in cmd
assert "--full-auto" in cmd
assert "--json" in cmd
assert cmd[-1] == "-"
assert cmd[0] == "gemini"
assert "--output-format" in cmd
assert "json" in cmd
assert "--approval-mode" in cmd
assert "yolo" in cmd
assert "PREAMBLE" in mock_run.call_args[1]["input"]
assert "UI를 구현하세요" in mock_run.call_args[1]["input"]
@@ -446,7 +446,7 @@ class TestInvokeCodex:
step = {"step": 2, "name": "ui"}
with patch("subprocess.run", return_value=mock_result):
executor._invoke_codex(step, "preamble")
executor._invoke_gemini(step, "preamble")
output_file = executor._phase_dir / "step2-output.json"
assert output_file.exists()
@@ -458,7 +458,7 @@ class TestInvokeCodex:
def test_nonexistent_step_file_exits(self, executor):
step = {"step": 99, "name": "nonexistent"}
with pytest.raises(SystemExit) as exc_info:
executor._invoke_codex(step, "preamble")
executor._invoke_gemini(step, "preamble")
assert exc_info.value.code == 1
def test_timeout_is_1800(self, executor):
@@ -466,7 +466,7 @@ class TestInvokeCodex:
step = {"step": 2, "name": "ui"}
with patch("subprocess.run", return_value=mock_result) as mock_run:
executor._invoke_codex(step, "preamble")
executor._invoke_gemini(step, "preamble")
assert mock_run.call_args[1]["timeout"] == 1800