On Sun, 25 Nov 2012, Peter Wang <novalazy@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@notmuchmail.org > http://notmuchmail.org/mailman/listinfo/notmuch