diff options
| author | David Bremner <david@tethera.net> | 2016-03-22 07:54:52 -0300 |
|---|---|---|
| committer | David Bremner <david@tethera.net> | 2016-05-25 07:40:44 -0300 |
| commit | 2d2a13966c74ffe86fc10abfbe1ac4c9798788ce (patch) | |
| tree | 94666c873f8ad22877f6d5e9b0e53f5cff8225a4 /test | |
| parent | c6fcc555dde2a50ac779d5871720a4f074322457 (diff) | |
CLI: add notmuch-config support for named queries
Most of the infrastructure here is general, only the validation/dispatch
is hardcoded to a particular prefix.
A notable change in behaviour is that notmuch-config now opens the
database e.g. on every call to list, which fails with an error message
if the database doesn't exit yet.
Diffstat (limited to 'test')
| -rw-r--r-- | test/Makefile.local | 2 | ||||
| -rwxr-xr-x | test/T030-config.sh | 12 | ||||
| -rwxr-xr-x | test/T600-named-queries.sh | 53 | ||||
| -rw-r--r-- | test/test-lib.sh | 5 |
4 files changed, 66 insertions, 6 deletions
diff --git a/test/Makefile.local b/test/Makefile.local index 022f2cf7..91b36936 100644 --- a/test/Makefile.local +++ b/test/Makefile.local @@ -19,7 +19,7 @@ $(dir)/hex-xcode: $(dir)/hex-xcode.o command-line-arguments.o util/libutil.a $(call quiet,CC) $^ -o $@ $(LDFLAGS) $(TALLOC_LDFLAGS) random_corpus_deps = $(dir)/random-corpus.o $(dir)/database-test.o \ - notmuch-config.o command-line-arguments.o \ + notmuch-config.o status.o command-line-arguments.o \ lib/libnotmuch.a util/libutil.a \ parse-time-string/libparse-time-string.a diff --git a/test/T030-config.sh b/test/T030-config.sh index 437269ff..b8d5a86f 100755 --- a/test/T030-config.sh +++ b/test/T030-config.sh @@ -43,10 +43,10 @@ notmuch config set foo.nonexistent test_expect_equal "$(notmuch config get foo.nonexistent)" "" test_begin_subtest "List all items" -notmuch config set database.path "/canonical/path" -output=$(notmuch config list | notmuch_built_with_sanitize) -test_expect_equal "$output" "\ -database.path=/canonical/path +notmuch config list 2>&1 | notmuch_config_sanitize > OUTPUT +cat <<EOF > EXPECTED +Error opening database at MAIL_DIR/.notmuch: No such file or directory +database.path=MAIL_DIR user.name=Notmuch Test Suite user.primary_email=test_suite@notmuchmail.org user.other_email=test_suite_other@notmuchmail.org;test_suite@otherdomain.org @@ -58,7 +58,9 @@ crypto.gpg_path=gpg foo.string=this is another string value foo.list=this;is another;list value; built_with.compact=something -built_with.field_processor=something" +built_with.field_processor=something +EOF +test_expect_equal_file EXPECTED OUTPUT test_begin_subtest "Top level --config=FILE option" cp "${NOTMUCH_CONFIG}" alt-config diff --git a/test/T600-named-queries.sh b/test/T600-named-queries.sh new file mode 100755 index 00000000..09226208 --- /dev/null +++ b/test/T600-named-queries.sh @@ -0,0 +1,53 @@ +#!/usr/bin/env bash +test_description='named queries' +. ./test-lib.sh || exit 1 + +QUERYSTR="date:2009-11-18..2009-11-18 and tag:unread" + +test_expect_code 1 "error adding named query before initializing DB" \ + "notmuch config set query.test \"$QUERYSTR\"" + +add_email_corpus + +test_expect_success "adding named query" \ + "notmuch config set query.test \"$QUERYSTR\"" + +QUERYSTR2="query:test and subject:Maildir" +test_expect_success "adding nested named query" \ + "notmuch config set query.test2 \"$QUERYSTR2\"" + +test_begin_subtest "retrieve named query" +output=$(notmuch config get query.test) +test_expect_equal "$QUERYSTR" "$output" + +test_begin_subtest "List all queries" +notmuch config list | grep ^query | notmuch_config_sanitize > OUTPUT +cat <<EOF > EXPECTED +query.test=date:2009-11-18..2009-11-18 and tag:unread +query.test2=query:test and subject:Maildir +EOF +test_expect_equal_file EXPECTED OUTPUT + +test_begin_subtest "dump named queries" +notmuch dump | grep '^#@' > OUTPUT +cat<<EOF > QUERIES.BEFORE +#@ query.test date%3a2009-11-18..2009-11-18%20and%20tag%3aunread +#@ query.test2 query%3atest%20and%20subject%3aMaildir +EOF +test_expect_equal_file QUERIES.BEFORE OUTPUT + +test_begin_subtest "delete named queries" +notmuch dump > BEFORE +notmuch config set query.test +notmuch dump | grep '^#@' > OUTPUT +cat<<EOF > EXPECTED +#@ query.test2 query%3atest%20and%20subject%3aMaildir +EOF +test_expect_equal_file EXPECTED OUTPUT + +test_begin_subtest "restore named queries" +notmuch restore < BEFORE +notmuch dump | grep '^#@' > OUTPUT +test_expect_equal_file QUERIES.BEFORE OUTPUT + +test_done diff --git a/test/test-lib.sh b/test/test-lib.sh index e4398620..201d0ebb 100644 --- a/test/test-lib.sh +++ b/test/test-lib.sh @@ -746,6 +746,11 @@ notmuch_built_with_sanitize () sed 's/^built_with[.]\(.*\)=.*$/built_with.\1=something/' } +notmuch_config_sanitize () +{ + notmuch_dir_sanitize | notmuch_built_with_sanitize +} + # End of notmuch helper functions # Use test_set_prereq to tell that a particular prerequisite is available. |
