notmuch --config=${CONFIG_PATH} config set database.path
}
-for config in traditional split XDG XDG+profile symlink home_mail maildir_env; do
+mailroot_only_config () {
+ local dir
+
+ backup_config
+ notmuch config set database.mail_root ${TMP_DIRECTORY}/mail
+ notmuch config set database.path
+ DATABASE_PATH="${HOME}/.local/share/notmuch/default"
+ rm -rf $DATABASE_PATH
+ mkdir -p $DATABASE_PATH
+ XAPIAN_PATH="${DATABASE_PATH}/xapian"
+ mv mail/.notmuch/xapian $DATABASE_PATH
+}
+
+for config in traditional split XDG XDG+profile symlink home_mail maildir_env mailroot_only; do
#start each set of tests with an known set of messages
add_email_corpus
maildir_env)
maildir_env_config
;;
+ mailroot_only)
+ mailroot_only_config
+ ;;
esac
test_begin_subtest "count ($config)"
built_with.compact=something
built_with.field_processor=something
built_with.retry_lock=something
-built_with.sexpr_query=something
+built_with.sexp_queries=something
database.autocommit=8000
database.backup_dir
database.hook_dir
database.mail_root=MAIL_DIR
database.path
+index.as_text=
maildir.synchronize_flags=true
new.ignore=
new.tags=unread;inbox
EOF
test_expect_equal_file EXPECTED OUTPUT
+ test_begin_subtest "Config list from python ($config)"
+ test_python <<EOF > OUTPUT
+from notmuch2 import Database
+db=Database(config=Database.CONFIG.SEARCH)
+for key in list(db.config):
+ print(key)
+EOF
+ cat <<EOF > EXPECTED
+database.autocommit
+database.backup_dir
+database.hook_dir
+database.mail_root
+database.path
+maildir.synchronize_flags
+new.tags
+user.name
+user.other_email
+user.primary_email
+EOF
+ test_expect_equal_file EXPECTED OUTPUT
+
case $config in
XDG*)
test_begin_subtest "Set shadowed config value in database ($config)"
print(to)
EOF
test_expect_equal_file EXPECTED OUTPUT
- ;& # fall through
- esac
- case $config in
- split|XDG*)
+ test_begin_subtest ".notmuch not ignored in split config ($config)"
+ test_subtest_known_broken
+ generate_message '[dir]=.notmuch/cur' '[subject]="Do not ignore, very important"'
+ NOTMUCH_NEW > OUTPUT
+ notmuch search subject:Do-not-ignore | notmuch_search_sanitize >> OUTPUT
+ cat <<EOF > EXPECTED
+Added 1 new message to the database.
+thread:XXX 2001-01-05 [1/1] Notmuch Test Suite; Do not ignore, very important (inbox unread)
+EOF
+ test_expect_equal_file EXPECTED OUTPUT
+ ;&
+ mailroot_only)
+ test_begin_subtest "create database parent dir ($config)"
+ rm -r ${DATABASE_PATH}
+ notmuch new
+ test_expect_equal "$(xapian-metadata get ${XAPIAN_PATH} version)" 3
+ ;;
+ *)
+ backup_database
+ test_begin_subtest ".notmuch without xapian/ handled gracefully ($config)"
+ rm -r $XAPIAN_PATH
+ test_expect_success "notmuch new"
+ restore_database
+ ;;
esac
+
restore_config
rm -rf home/.local
rm -rf home/.config