Return-Path: X-Original-To: notmuch@notmuchmail.org Delivered-To: notmuch@notmuchmail.org Received: from localhost (localhost [127.0.0.1]) by olra.theworths.org (Postfix) with ESMTP id 50786431FD0 for ; Sat, 14 Dec 2013 17:16:41 -0800 (PST) X-Virus-Scanned: Debian amavisd-new at olra.theworths.org X-Spam-Flag: NO X-Spam-Score: 0 X-Spam-Level: X-Spam-Status: No, score=0 tagged_above=-999 required=5 tests=[none] autolearn=disabled Received: from olra.theworths.org ([127.0.0.1]) by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id h8-zTsqkiWK5 for ; Sat, 14 Dec 2013 17:16:35 -0800 (PST) Received: from yantan.tethera.net (yantan.tethera.net [199.188.72.155]) (using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by olra.theworths.org (Postfix) with ESMTPS id BED8D431FD5 for ; Sat, 14 Dec 2013 17:16:25 -0800 (PST) Received: from remotemail by yantan.tethera.net with local (Exim 4.80) (envelope-from ) id 1Vs0Jj-0000Si-8t; Sat, 14 Dec 2013 21:16:23 -0400 Received: (nullmailer pid 13656 invoked by uid 1000); Sun, 15 Dec 2013 01:16:11 -0000 From: David Bremner To: notmuch@notmuchmail.org Subject: [PATCH 1/2] test: add emacs_fcc_message that does not use smtp-dummy Date: Sun, 15 Dec 2013 09:15:57 +0800 Message-Id: <1387070158-30547-2-git-send-email-david@tethera.net> X-Mailer: git-send-email 1.8.4.3 In-Reply-To: <1387070158-30547-1-git-send-email-david@tethera.net> References: <1387070158-30547-1-git-send-email-david@tethera.net> X-BeenThere: notmuch@notmuchmail.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: "Use and development of the notmuch mail system." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 15 Dec 2013 01:16:41 -0000 Most of the tests previously using emacs_deliver_message do not use the actual transmitted message, so we replace it with a simpler (and presumably more reliable function) that only saves (and indexes) an fcc copy of the message. --- test/crypto | 10 +++------- test/emacs | 4 ++-- test/json | 2 +- test/sexp | 2 +- test/test-lib.sh | 29 +++++++++++++++++++++++++++++ 5 files changed, 36 insertions(+), 11 deletions(-) diff --git a/test/crypto b/test/crypto index 9e5ff4f..477b397 100755 --- a/test/crypto +++ b/test/crypto @@ -28,12 +28,8 @@ add_gnupg_home # get key fingerprint FINGERPRINT=$(gpg --no-tty --list-secret-keys --with-colons --fingerprint | grep '^fpr:' | cut -d: -f10) -# for some reason this is needed for emacs_deliver_message to work, -# although I can't figure out why -add_email_corpus - test_expect_success 'emacs delivery of signed message' \ -'emacs_deliver_message \ +'emacs_fcc_message \ "test signed message 001" \ "This is a test signed message." \ "(mml-secure-message-sign)"' @@ -143,7 +139,7 @@ cat <TESTATTACHMENT This is a test file. EOF test_expect_success 'emacs delivery of encrypted message with attachment' \ -'emacs_deliver_message \ +'emacs_fcc_message \ "test encrypted message 001" \ "This is a test encrypted message.\n" \ "(mml-attach-file \"TESTATTACHMENT\") (mml-secure-message-encrypt)"' @@ -270,7 +266,7 @@ test_expect_equal_json \ mv "${GNUPGHOME}"{.bak,} test_expect_success 'emacs delivery of encrypted + signed message' \ -'emacs_deliver_message \ +'emacs_fcc_message \ "test encrypted message 002" \ "This is another test encrypted message.\n" \ "(mml-secure-message-sign-encrypt)"' diff --git a/test/emacs b/test/emacs index 1b1ebe3..863219d 100755 --- a/test/emacs +++ b/test/emacs @@ -771,7 +771,7 @@ test_expect_equal_file OUTPUT EXPECTED test_begin_subtest "Do not call notmuch for non-inlinable application/mpeg parts" id='message-with-application/mpeg-attachment@notmuchmail.org' -emacs_deliver_message \ +emacs_fcc_message \ 'Message with application/mpeg attachment' \ '' \ "(message-goto-eoh) @@ -786,7 +786,7 @@ test_expect_equal $(notmuch_counter_value) 1 test_begin_subtest "Do not call notmuch for non-inlinable audio/mpeg parts" id='message-with-audio/mpeg-attachment@notmuchmail.org' -emacs_deliver_message \ +emacs_fcc_message \ 'Message with audio/mpeg attachment' \ '' \ "(message-goto-eoh) diff --git a/test/json b/test/json index e07a290..c1cf649 100755 --- a/test/json +++ b/test/json @@ -38,7 +38,7 @@ test_expect_equal_json "$output" "[[[{\"id\": \"${gen_msg_id}\", \"match\": true test_begin_subtest "Show message: json, inline attachment filename" subject='json-show-inline-attachment-filename' id="json-show-inline-attachment-filename@notmuchmail.org" -emacs_deliver_message \ +emacs_fcc_message \ "$subject" \ 'This is a test message with inline attachment with a filename' \ "(mml-attach-file \"$TEST_DIRECTORY/README\" nil nil \"inline\") diff --git a/test/sexp b/test/sexp index be815e1..667e319 100755 --- a/test/sexp +++ b/test/sexp @@ -29,7 +29,7 @@ test_expect_equal "$output" "((((:id \"${gen_msg_id}\" :match t :excluded nil :f test_begin_subtest "Show message: sexp, inline attachment filename" subject='sexp-show-inline-attachment-filename' id="sexp-show-inline-attachment-filename@notmuchmail.org" -emacs_deliver_message \ +emacs_fcc_message \ "$subject" \ 'This is a test message with inline attachment with a filename' \ "(mml-attach-file \"$TEST_DIRECTORY/README\" nil nil \"inline\") diff --git a/test/test-lib.sh b/test/test-lib.sh index 53cb947..66c0720 100644 --- a/test/test-lib.sh +++ b/test/test-lib.sh @@ -470,6 +470,35 @@ emacs_deliver_message () notmuch new >/dev/null } +# Pretend to deliver a message with emacs. Really save it to a file +# and add it to the database +# +# Uses emacs to generate and deliver a message to the mail store. +# Accepts arbitrary extra emacs/elisp functions to modify the message +# before sending, which is useful to doing things like attaching files +# to the message and encrypting/signing. +emacs_fcc_message () +{ + local subject="$1" + local body="$2" + shift 2 + # before we can send a message, we have to prepare the FCC maildir + mkdir -p "$MAIL_DIR"/sent/{cur,new,tmp} + + test_emacs \ + "(let ((message-send-mail-function (lambda () t))) + (notmuch-mua-mail) + (message-goto-to) + (insert \"test_suite@notmuchmail.org\nDate: 01 Jan 2000 12:00:00 -0000\") + (message-goto-subject) + (insert \"${subject}\") + (message-goto-body) + (insert \"${body}\") + $@ + (message-send-and-exit))" || return 1 + notmuch new >/dev/null +} + # Generate a corpus of email and add it to the database. # # This corpus is fixed, (it happens to be 50 messages from early in -- 1.8.4.3