mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-24 11:58:10 +01:00
test: add known broken tests for setting NOTMUCH_CONFIG in hooks
Setting this according to --config was requested by Uwe Kleine-König. There are some other ways that the configuration file might be found in current notmuch, so check those as well. As a bonus, fix a bug in the hook tests that left NOTMUCH_CONFIG set even though a config file was provided via NOTMUCH_PROFILE. [1]: id:8baa58c3-7ab9-ec03-1bbd-28aa5be838f2@kleine-koenig.org
This commit is contained in:
parent
8d3d98991d
commit
e167825bca
1 changed files with 36 additions and 1 deletions
|
@ -15,6 +15,15 @@ EOF
|
||||||
echo "${TOKEN}" > ${2}
|
echo "${TOKEN}" > ${2}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
create_printenv_hook () {
|
||||||
|
mkdir -p ${HOOK_DIR}
|
||||||
|
cat <<EOF >"${HOOK_DIR}/${1}"
|
||||||
|
#!/bin/sh
|
||||||
|
printenv "${2}" > "${3}"
|
||||||
|
EOF
|
||||||
|
chmod +x "${HOOK_DIR}/${1}"
|
||||||
|
}
|
||||||
|
|
||||||
create_write_hook () {
|
create_write_hook () {
|
||||||
local TOKEN="${RANDOM}"
|
local TOKEN="${RANDOM}"
|
||||||
mkdir -p ${HOOK_DIR}
|
mkdir -p ${HOOK_DIR}
|
||||||
|
@ -53,8 +62,11 @@ add_message
|
||||||
# create maildir structure for notmuch-insert
|
# create maildir structure for notmuch-insert
|
||||||
mkdir -p "$MAIL_DIR"/{cur,new,tmp}
|
mkdir -p "$MAIL_DIR"/{cur,new,tmp}
|
||||||
|
|
||||||
|
ORIG_NOTMUCH_CONFIG=${NOTMUCH_CONFIG}
|
||||||
for config in traditional profile explicit relative XDG split; do
|
for config in traditional profile explicit relative XDG split; do
|
||||||
unset NOTMUCH_PROFILE
|
unset NOTMUCH_PROFILE
|
||||||
|
export NOTMUCH_CONFIG=${ORIG_NOTMUCH_CONFIG}
|
||||||
|
EXPECTED_CONFIG=${NOTMUCH_CONFIG}
|
||||||
notmuch config set database.hook_dir
|
notmuch config set database.hook_dir
|
||||||
notmuch config set database.path ${MAIL_DIR}
|
notmuch config set database.path ${MAIL_DIR}
|
||||||
case $config in
|
case $config in
|
||||||
|
@ -65,8 +77,10 @@ for config in traditional profile explicit relative XDG split; do
|
||||||
dir=${HOME}/.config/notmuch/other
|
dir=${HOME}/.config/notmuch/other
|
||||||
mkdir -p ${dir}
|
mkdir -p ${dir}
|
||||||
HOOK_DIR=${dir}/hooks
|
HOOK_DIR=${dir}/hooks
|
||||||
cp ${NOTMUCH_CONFIG} ${dir}/config
|
EXPECTED_CONFIG=${dir}/config
|
||||||
|
cp ${NOTMUCH_CONFIG} ${EXPECTED_CONFIG}
|
||||||
export NOTMUCH_PROFILE=other
|
export NOTMUCH_PROFILE=other
|
||||||
|
unset NOTMUCH_CONFIG
|
||||||
;;
|
;;
|
||||||
explicit)
|
explicit)
|
||||||
HOOK_DIR=${HOME}/.notmuch-hooks
|
HOOK_DIR=${HOME}/.notmuch-hooks
|
||||||
|
@ -200,6 +214,27 @@ EOF
|
||||||
EOF
|
EOF
|
||||||
test_expect_equal_file EXPECTED OUTPUT
|
test_expect_equal_file EXPECTED OUTPUT
|
||||||
|
|
||||||
|
test_begin_subtest "NOTMUCH_CONFIG is set"
|
||||||
|
if [ "${config}" = "profile" ]; then
|
||||||
|
test_subtest_known_broken
|
||||||
|
fi
|
||||||
|
create_printenv_hook "pre-new" NOTMUCH_CONFIG OUTPUT
|
||||||
|
NOTMUCH_NEW
|
||||||
|
cat <<EOF > EXPECTED
|
||||||
|
${EXPECTED_CONFIG}
|
||||||
|
EOF
|
||||||
|
test_expect_equal_file_nonempty EXPECTED OUTPUT
|
||||||
|
|
||||||
|
test_begin_subtest "NOTMUCH_CONFIG is set by --config"
|
||||||
|
test_subtest_known_broken
|
||||||
|
create_printenv_hook "pre-new" NOTMUCH_CONFIG OUTPUT
|
||||||
|
cp "${EXPECTED_CONFIG}" "${EXPECTED_CONFIG}.alternate"
|
||||||
|
notmuch --config "${EXPECTED_CONFIG}.alternate" new
|
||||||
|
cat <<EOF > EXPECTED
|
||||||
|
${EXPECTED_CONFIG}.alternate
|
||||||
|
EOF
|
||||||
|
test_expect_equal_file_nonempty EXPECTED OUTPUT
|
||||||
|
|
||||||
rm -rf ${HOOK_DIR}
|
rm -rf ${HOOK_DIR}
|
||||||
done
|
done
|
||||||
test_done
|
test_done
|
||||||
|
|
Loading…
Reference in a new issue