git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH v2 08/10] replace: add tests for --edit

From
Christian Couder <chriscool@tuxfamily.org>
Date
May 17, 2014, 06:41 UTC
Message-ID
<20140517064133.18932.74476.chriscool@tuxfamily.org>
In-Reply-To
<20140517062418.18932.21200.chriscool@tuxfamily.org>
Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
---
 t/t6050-replace.sh | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)
diff --git a/t/t6050-replace.sh b/t/t6050-replace.sh
index 719a116..7609174 100755
--- a/t/t6050-replace.sh
+++ b/t/t6050-replace.sh
@@ -318,6 +318,35 @@ test_expect_success 'test --format long' '
 	test_cmp expected actual
 '
 
+test_expect_success 'setup a fake editor' '
+	cat >fakeeditor <<-\EOF &&
+		#!/bin/sh
+		sed -e "s/A U Thor/A fake Thor/" "$1" >"$1.new"
+		mv "$1.new" "$1"
+	EOF
+	chmod +x fakeeditor
+'
+
+test_expect_success '--edit with and without already replaced object' '
+	GIT_EDITOR=./fakeeditor test_must_fail git replace --edit "$PARA3" &&
+	GIT_EDITOR=./fakeeditor git replace --force --edit "$PARA3" &&
+	git replace -l | grep "$PARA3" &&
+	git cat-file commit "$PARA3" | grep "A fake Thor" &&
+	git replace -d "$PARA3" &&
+	GIT_EDITOR=./fakeeditor git replace --edit "$PARA3" &&
+	git replace -l | grep "$PARA3" &&
+	git cat-file commit "$PARA3" | grep "A fake Thor"
+'
+
+test_expect_success '--edit and change nothing or command failed' '
+	git replace -d "$PARA3" &&
+	GIT_EDITOR=true test_must_fail git replace --edit "$PARA3" &&
+	GIT_EDITOR="./fakeeditor;false" test_must_fail git replace --edit "$PARA3" &&
+	GIT_EDITOR=./fakeeditor git replace --edit "$PARA3" &&
+	git replace -l | grep "$PARA3" &&
+	git cat-file commit "$PARA3" | grep "A fake Thor"
+'
+
 test_expect_success 'replace ref cleanup' '
 	test -n "$(git replace)" &&
 	git replace -d $(git replace) &&
-- 
1.9.rc0.17.g651113e
Previous: Jeff KingNext: Jeff King
Message 11 of 16 in “replace: add option to edit a Git object”
  1. 00/10 replace: add option to edit a Git objectChristian Couder, May 17, 2014
  2. 01/10 replace: refactor command-mode determinationChristian Couder, May 17, 2014
  3. 02/10 replace: use OPT_CMDMODE to handle modesChristian Couder, May 17, 2014
  4. 03/10 replace: factor object resolution out of replace_objectChristian Couder, May 17, 2014
  5. 04/10 replace: add --edit optionChristian Couder, May 17, 2014
  6. 05/10 replace: make sure --edit results in a different objectChristian Couder, May 17, 2014
  7. Jeff KingMay 17, 2014
  8. 06/10 replace: refactor checking ref validityChristian Couder, May 17, 2014
  9. 07/10 replace: die early if replace ref already existsChristian Couder, May 17, 2014
  10. Jeff KingMay 17, 2014
  11. 08/10 replace: add tests for --editChristian Couder, May 17, 2014
  12. Jeff KingMay 17, 2014
  13. 09/10 replace: add --edit to usage stringChristian Couder, May 17, 2014
  14. 10/10 Documentation: replace: describe new --edit optionChristian Couder, May 17, 2014
  15. Jeff KingMay 17, 2014
  16. Jeff KingMay 17, 2014

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.