feat. Enforce repo review config
This commit is contained in:
@@ -4,7 +4,7 @@ import httpx
|
||||
|
||||
from gitea_codex_bot.config import get_settings
|
||||
from gitea_codex_bot.services.repo_config import RepoReviewConfig
|
||||
from gitea_codex_bot.services.reviewer import _build_prompt, _fallback_review, run_review_for_pr
|
||||
from gitea_codex_bot.services.reviewer import _build_prompt, _fallback_review, prepare_review_prompt, run_review_for_pr
|
||||
from gitea_codex_bot.types import ParsedCommand
|
||||
|
||||
|
||||
@@ -55,3 +55,33 @@ def test_build_prompt_includes_trigger_message() -> None:
|
||||
)
|
||||
|
||||
assert "Trigger message: @codex review security\nPlease focus auth." in prompt
|
||||
|
||||
|
||||
def test_prepare_review_prompt_applies_repo_default_mode_when_command_mode_not_explicit(monkeypatch, tmp_path) -> None:
|
||||
repo_dir = tmp_path / "repo"
|
||||
repo_dir.mkdir(parents=True, exist_ok=True)
|
||||
(repo_dir / ".codex-review.yml").write_text("review:\n default_mode: tests\n", encoding="utf-8")
|
||||
|
||||
pr = type(
|
||||
"PR",
|
||||
(),
|
||||
{
|
||||
"base_sha": "b" * 40,
|
||||
"head_sha": "a" * 40,
|
||||
"html_url": "https://gitea.example/pr/1",
|
||||
},
|
||||
)()
|
||||
|
||||
monkeypatch.setattr("gitea_codex_bot.services.reviewer.checkout_pr", lambda *_args, **_kwargs: repo_dir)
|
||||
monkeypatch.setattr(
|
||||
"gitea_codex_bot.services.reviewer.collect_diff_context",
|
||||
lambda *_args, **_kwargs: {"diff": "", "changed_files": [], "truncated": False},
|
||||
)
|
||||
|
||||
settings = get_settings()
|
||||
gitea = type("GiteaStub", (), {"get_pull_request": lambda *_args, **_kwargs: pr})()
|
||||
command = ParsedCommand(name="review", raw="@codex review")
|
||||
|
||||
prompt, _diff, _cfg = prepare_review_prompt(settings, gitea, "acme/repo", 9, command)
|
||||
|
||||
assert "Mode: tests" in prompt
|
||||
|
||||
Reference in New Issue
Block a user