git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/2] test send-email --compose
@ 2008-02-24 20:57 Jeff King
  2008-02-24 21:03 ` [PATCH] t9001: enhance fake sendmail test harness Jeff King
  2008-02-24 21:04 ` [PATCH 2/2] send-email: test compose functionality Jeff King
  0 siblings, 2 replies; 3+ messages in thread
From: Jeff King @ 2008-02-24 20:57 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git

This is a respun version of some tests from the freeze period. The bug
they test for was fixed, but these weren't accepted because there was a
modification to git-send-email.perl (a --no-confirm-send option) that we
didn't want during the freeze.

Not only are we now out of freeze, but we recently added a
GIT_SEND_EMAIL_NOTTY flag which accomplishes a similar goal for testing.
This version is updated to use that flag and drops the --no-confirm-send
option entirely.

-Peff

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [PATCH] t9001: enhance fake sendmail test harness
  2008-02-24 20:57 [PATCH 0/2] test send-email --compose Jeff King
@ 2008-02-24 21:03 ` Jeff King
  2008-02-24 21:04 ` [PATCH 2/2] send-email: test compose functionality Jeff King
  1 sibling, 0 replies; 3+ messages in thread
From: Jeff King @ 2008-02-24 21:03 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git

Previously, the fake.sendmail test harness would write its
output to a hardcoded file, allowing only a single message
to be tested. Instead, let's have it save the messages for
all of its invocations so that we can see which messages
were sent, and in which order.

Signed-off-by: Jeff King <peff@peff.net>
---
 t/t9001-send-email.sh |   22 +++++++++++++++-------
 1 files changed, 15 insertions(+), 7 deletions(-)

diff --git a/t/t9001-send-email.sh b/t/t9001-send-email.sh
index 2efaed4..4975048 100755
--- a/t/t9001-send-email.sh
+++ b/t/t9001-send-email.sh
@@ -15,16 +15,22 @@ test_expect_success \
     'Setup helper tool' \
     '(echo "#!/bin/sh"
       echo shift
+      echo output=1
+      echo "while test -f commandline\$output; do output=\$((\$output+1)); done"
       echo for a
       echo do
       echo "  echo \"!\$a!\""
-      echo "done >commandline"
-      echo "cat > msgtxt"
+      echo "done >commandline\$output"
+      echo "cat > msgtxt\$output"
       ) >fake.sendmail &&
      chmod +x ./fake.sendmail &&
      git add fake.sendmail &&
      GIT_AUTHOR_NAME="A" git commit -a -m "Second."'
 
+clean_fake_sendmail() {
+	rm -f commandline* msgtxt*
+}
+
 test_expect_success 'Extract patches' '
     patches=`git format-patch -n HEAD^1`
 '
@@ -39,7 +45,7 @@ cat >expected <<\EOF
 EOF
 test_expect_success \
     'Verify commandline' \
-    'diff commandline expected'
+    'diff commandline1 expected'
 
 cat >expected-show-all-headers <<\EOF
 0001-Second.patch
@@ -82,7 +88,7 @@ z8=zzzzzzzz
 z64=$z8$z8$z8$z8$z8$z8$z8$z8
 z512=$z64$z64$z64$z64$z64$z64$z64$z64
 test_expect_success 'reject long lines' '
-	rm -f commandline &&
+	clean_fake_sendmail &&
 	cp $patches longline.patch &&
 	echo $z512$z512 >>longline.patch &&
 	! git send-email \
@@ -95,7 +101,7 @@ test_expect_success 'reject long lines' '
 '
 
 test_expect_success 'no patch was sent' '
-	! test -e commandline
+	! test -e commandline1
 '
 
 test_expect_success 'allow long lines with --no-validate' '
@@ -109,6 +115,7 @@ test_expect_success 'allow long lines with --no-validate' '
 '
 
 test_expect_success 'Invalid In-Reply-To' '
+	clean_fake_sendmail &&
 	git send-email \
 		--from="Example <nobody@example.com>" \
 		--to=nobody@example.com \
@@ -116,17 +123,18 @@ test_expect_success 'Invalid In-Reply-To' '
 		--smtp-server="$(pwd)/fake.sendmail" \
 		$patches
 		2>errors
-	! grep "^In-Reply-To: < *>" msgtxt
+	! grep "^In-Reply-To: < *>" msgtxt1
 '
 
 test_expect_success 'Valid In-Reply-To when prompting' '
+	clean_fake_sendmail &&
 	(echo "From Example <from@example.com>"
 	 echo "To Example <to@example.com>"
 	 echo ""
 	) | env GIT_SEND_EMAIL_NOTTY=1 git send-email \
 		--smtp-server="$(pwd)/fake.sendmail" \
 		$patches 2>errors &&
-	! grep "^In-Reply-To: < *>" msgtxt
+	! grep "^In-Reply-To: < *>" msgtxt1
 '
 
 test_done
-- 
1.5.4.3.307.gacd7

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [PATCH 2/2] send-email: test compose functionality
  2008-02-24 20:57 [PATCH 0/2] test send-email --compose Jeff King
  2008-02-24 21:03 ` [PATCH] t9001: enhance fake sendmail test harness Jeff King
@ 2008-02-24 21:04 ` Jeff King
  1 sibling, 0 replies; 3+ messages in thread
From: Jeff King @ 2008-02-24 21:04 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git

This is just a basic sanity check that --compose works at
all.

Signed-off-by: Jeff King <peff@peff.net>
---
 t/t9001-send-email.sh |   29 +++++++++++++++++++++++++++++
 1 files changed, 29 insertions(+), 0 deletions(-)

diff --git a/t/t9001-send-email.sh b/t/t9001-send-email.sh
index 4975048..cbbfa9c 100755
--- a/t/t9001-send-email.sh
+++ b/t/t9001-send-email.sh
@@ -137,4 +137,33 @@ test_expect_success 'Valid In-Reply-To when prompting' '
 	! grep "^In-Reply-To: < *>" msgtxt1
 '
 
+test_expect_success 'setup fake editor' '
+	(echo "#!/bin/sh" &&
+	 echo "echo fake edit >>\$1"
+	) >fake-editor &&
+	chmod +x fake-editor
+'
+
+test_expect_success '--compose works' '
+	clean_fake_sendmail &&
+	echo y | \
+		GIT_EDITOR=$(pwd)/fake-editor \
+		GIT_SEND_EMAIL_NOTTY=1 \
+		git send-email \
+		--compose --subject foo \
+		--from="Example <nobody@example.com>" \
+		--to=nobody@example.com \
+		--smtp-server="$(pwd)/fake.sendmail" \
+		$patches \
+		2>errors
+'
+
+test_expect_success 'first message is compose text' '
+	grep "^fake edit" msgtxt1
+'
+
+test_expect_success 'second message is patch' '
+	grep "Subject:.*Second" msgtxt2
+'
+
 test_done
-- 
1.5.4.3.307.gacd7

^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2008-02-24 21:05 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-02-24 20:57 [PATCH 0/2] test send-email --compose Jeff King
2008-02-24 21:03 ` [PATCH] t9001: enhance fake sendmail test harness Jeff King
2008-02-24 21:04 ` [PATCH 2/2] send-email: test compose functionality Jeff King

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).