mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-12-22 17:34:54 +01:00
test: Add tests for write access to database from hooks.
Recent changes to configuration handling meant the pre-new hook was run while the database was open read only, limiting what could be done in the hook. Add some known broken tests for this problem, as well as a regression test for write access from the post-new hook.
This commit is contained in:
parent
13efbd0e1c
commit
7d286f0272
2 changed files with 29 additions and 0 deletions
|
@ -2,6 +2,8 @@
|
|||
test_description='hooks'
|
||||
. $(dirname "$0")/test-lib.sh || exit 1
|
||||
|
||||
test_require_external_prereq xapian-delve
|
||||
|
||||
create_echo_hook () {
|
||||
local TOKEN="${RANDOM}"
|
||||
mkdir -p ${HOOK_DIR}
|
||||
|
@ -13,6 +15,19 @@ EOF
|
|||
echo "${TOKEN}" > ${2}
|
||||
}
|
||||
|
||||
create_write_hook () {
|
||||
local TOKEN="${RANDOM}"
|
||||
mkdir -p ${HOOK_DIR}
|
||||
cat <<EOF >"${HOOK_DIR}/${1}"
|
||||
#!/bin/sh
|
||||
if xapian-delve ${MAIL_DIR}/.notmuch/xapian | grep -q "writing = false"; then
|
||||
echo "${TOKEN}" > ${3}
|
||||
fi
|
||||
EOF
|
||||
chmod +x "${HOOK_DIR}/${1}"
|
||||
echo "${TOKEN}" > ${2}
|
||||
}
|
||||
|
||||
create_failing_hook () {
|
||||
local HOOK_DIR=${2}
|
||||
mkdir -p ${HOOK_DIR}
|
||||
|
@ -137,6 +152,19 @@ EOF
|
|||
chmod +x "${HOOK_DIR}/pre-new"
|
||||
test_expect_code 1 "notmuch new"
|
||||
|
||||
test_begin_subtest "post-new with write access [${config}]"
|
||||
rm -rf ${HOOK_DIR}
|
||||
create_write_hook "post-new" write.expected write.output $HOOK_DIR
|
||||
NOTMUCH_NEW
|
||||
test_expect_equal_file write.expected write.output
|
||||
|
||||
test_begin_subtest "pre-new with write access [${config}]"
|
||||
test_subtest_known_broken
|
||||
rm -rf ${HOOK_DIR}
|
||||
create_write_hook "pre-new" write.expected write.output $HOOK_DIR
|
||||
NOTMUCH_NEW
|
||||
test_expect_equal_file write.expected write.output
|
||||
|
||||
rm -rf ${HOOK_DIR}
|
||||
done
|
||||
test_done
|
||||
|
|
|
@ -1271,3 +1271,4 @@ test_declare_external_prereq openssl
|
|||
test_declare_external_prereq gpgsm
|
||||
test_declare_external_prereq ${NOTMUCH_PYTHON}
|
||||
test_declare_external_prereq xapian-metadata
|
||||
test_declare_external_prereq xapian-delve
|
||||
|
|
Loading…
Reference in a new issue