[PATCH v2 18/20] test: add tests for insert

Mark Walters markwalters1009 at gmail.com
Sun Nov 25 08:23:17 PST 2012


On Sun, 25 Nov 2012, Peter Wang <novalazy at gmail.com> wrote:
> Add tests for new 'insert' command.
> ---
>  test/insert       | 93 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
>  test/notmuch-test |  1 +
>  2 files changed, 94 insertions(+)
>  create mode 100755 test/insert
>
> diff --git a/test/insert b/test/insert
> new file mode 100755
> index 0000000..d821a41
> --- /dev/null
> +++ b/test/insert
> @@ -0,0 +1,93 @@
> +#!/usr/bin/env bash
> +test_description='"notmuch insert"'
> +. ./test-lib.sh
> +
> +# Create directories and database before inserting.
> +mkdir -p "$MAIL_DIR"/{cur,new,tmp}
> +mkdir -p "$MAIL_DIR"/Drafts/{cur,new,tmp}
> +notmuch new > /dev/null
> +
> +# We use generate_message to create the temporary message file.
> +# It happens to be in the mail directory already but that is okay.

Perhaps add "since we do not call notmuch new".

> +
> +test_begin_subtest "Insert message, default"
> +generate_message \
> +    "[subject]=\"insert-subject\"" \
> +    "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" \
> +    "[body]=\"insert-message\""
> +notmuch insert < "$gen_msg_filename"
> +test_expect_equal "`notmuch count subject:insert-subject tag:unread`" "1"

I would much prefer to test that we have the proper full message here
with something like notmuch show  or something. I would like
something that tests that the full message has actually been written to
disk.

> +test_begin_subtest "Insert message, add tag"
> +generate_message \
> +    "[subject]=\"insert-subject-addtag\"" \
> +    "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" \
> +    "[body]=\"insert-message-addtag\""
> +notmuch insert +custom < "$gen_msg_filename"
> +test_expect_equal "`notmuch count tag:custom`" "1"
> +
> +test_begin_subtest "Insert message, add/remove tag"
> +generate_message \
> +    "[subject]=\"insert-subject-addrmtag\"" \
> +    "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" \
> +    "[body]=\"insert-message-addrmtag\""
> +notmuch insert +custom -unread < "$gen_msg_filename"
> +test_expect_equal "`notmuch count tag:custom NOT tag:unread`" "1"
> +
> +test_begin_subtest "Insert message, folder"
> +generate_message \
> +    "[subject]=\"insert-subject-draft\"" \
> +    "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" \
> +    "[body]=\"insert-message-draft\""
> +notmuch insert --folder=Drafts < "$gen_msg_filename"
> +test_expect_equal "`notmuch count folder:Drafts`" "1"
> +
> +test_begin_subtest "Insert message, folder and tags"
> +generate_message \
> +    "[subject]=\"insert-subject-draft\"" \
> +    "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" \
> +    "[body]=\"insert-message-draft\""
> +notmuch insert --folder=Drafts +draft -unread < "$gen_msg_filename"
> +test_expect_equal "`notmuch count folder:Drafts tag:draft NOT tag:unread`" "1"
> +
> +test_begin_subtest "Insert message, non-existent folder"
> +generate_message \
> +    "[subject]=\"insert-subject-nonexistfolder\"" \
> +    "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" \
> +    "[body]=\"insert-message-nonexistfolder\""
> +notmuch insert --folder=nonesuch < "$gen_msg_filename"
> +test_expect_equal "$?" "1"

Here and for other error cases you could check that the correct error
message is being returned.

Best wishes

Mark
> +
> +test_begin_subtest "Insert message, create folder"
> +generate_message \
> +    "[subject]=\"insert-subject-createfolder\"" \
> +    "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" \
> +    "[body]=\"insert-message-createfolder\""
> +notmuch insert --folder=F --create-folder +folder < "$gen_msg_filename"
> +test_expect_equal "`notmuch count folder:F tag:folder`" "1"
> +
> +test_begin_subtest "Insert message, create subfolder"
> +generate_message \
> +    "[subject]=\"insert-subject-createfolder\"" \
> +    "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" \
> +    "[body]=\"insert-message-createfolder\""
> +notmuch insert --folder=F/G/H/I/J --create-folder +folder < "$gen_msg_filename"
> +test_expect_equal "`notmuch count folder:F/G/H/I/J tag:folder`" "1"
> +
> +test_begin_subtest "Insert message, create existing subfolder"
> +generate_message \
> +    "[subject]=\"insert-subject-createfolder\"" \
> +    "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" \
> +    "[body]=\"insert-message-createfolder\""
> +notmuch insert --folder=F/G/H/I/J --create-folder +folder < "$gen_msg_filename"
> +test_expect_equal "`notmuch count folder:F/G/H/I/J tag:folder`" "2"
> +
> +test_begin_subtest "Insert message, create invalid subfolder"
> +generate_message \
> +    "[subject]=\"insert-subject-createinvalidfolder\"" \
> +    "[date]=\"Sat, 01 Jan 2000 12:00:00 -0000\"" \
> +    "[body]=\"insert-message-createinvalidfolder\""
> +notmuch insert --folder=../G --create-folder < "$gen_msg_filename"
> +test_expect_equal "$?" "1"
> +
> +test_done
> diff --git a/test/notmuch-test b/test/notmuch-test
> index 9a1b375..09be44c 100755
> --- a/test/notmuch-test
> +++ b/test/notmuch-test
> @@ -22,6 +22,7 @@ TESTS="
>    config
>    new
>    count
> +  insert
>    search
>    search-output
>    search-by-folder
> -- 
> 1.7.12.1
>
> _______________________________________________
> notmuch mailing list
> notmuch at notmuchmail.org
> http://notmuchmail.org/mailman/listinfo/notmuch


More information about the notmuch mailing list