From eeb772db3ed141760feecf6990ab131f51700f5b Mon Sep 17 00:00:00 2001 From: Matthieu Monsch Date: Thu, 10 Apr 2025 14:05:41 -0700 Subject: [PATCH] fix: raise on placeholder prompt --- src/git_draft/__main__.py | 10 ++++++---- tests/git_draft/drafter_test.py | 4 +++- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/git_draft/__main__.py b/src/git_draft/__main__.py index 0c2102f..1265469 100644 --- a/src/git_draft/__main__.py +++ b/src/git_draft/__main__.py @@ -146,15 +146,15 @@ def on_list_files( def on_read_file( self, path: PurePosixPath, _contents: str | None, _reason: str | None ) -> None: - print(f"Reading {path!r}...") + print(f"Reading {path}...") def on_write_file( self, path: PurePosixPath, _contents: str, _reason: str | None ) -> None: - print(f"Updated {path!r}.") + print(f"Wrote {path}.") def on_delete_file(self, path: PurePosixPath, _reason: str | None) -> None: - print(f"Deleted {path!r}.") + print(f"Deleted {path}.") def on_rename_file( self, @@ -162,7 +162,7 @@ def on_rename_file( dst_path: PurePosixPath, _reason: str | None ) -> None: - print(f"Renamed {src_path!r} to {dst_path!r}.") + print(f"Renamed {src_path} to {dst_path}.") def edit(*, path: Path | None = None, text: str | None = None) -> str: @@ -219,6 +219,8 @@ def main() -> None: # noqa: PLR0912 PLR0915 prompt = edit( text=drafter.latest_draft_prompt() or _PROMPT_PLACEHOLDER ) + if not prompt or prompt == _PROMPT_PLACEHOLDER: + raise ValueError("Aborting: empty or placeholder prompt") else: prompt = sys.stdin.read() diff --git a/tests/git_draft/drafter_test.py b/tests/git_draft/drafter_test.py index 7377a83..329e50b 100644 --- a/tests/git_draft/drafter_test.py +++ b/tests/git_draft/drafter_test.py @@ -155,15 +155,17 @@ def test_generate_noop(self) -> None: def test_generate_accept_checkout(self) -> None: self._write("p1", "A") self._write("p2", "B") + self._write("p4", "E") self._drafter.generate_draft( "hello", - _SimpleBot({"p1": "C", "p3": "D"}), + _SimpleBot({"p1": "C", "p3": "D", "p4": None}), accept=sut.Accept.CHECKOUT, sync=True, ) assert self._read("p1") == "C" assert self._read("p2") == "B" assert self._read("p3") == "D" + assert self._read("p4") is None def test_generate_accept_checkout_conflict(self) -> None: self._write("p1", "A")