unofficial mirror of notmuch@notmuchmail.org
 help / color / mirror / code / Atom feed
From: David Bremner <david@tethera.net>
To: notmuch@notmuchmail.org
Subject: [PATCH 1/2] test: add known broken tests for setting NOTMUCH_CONFIG in hooks
Date: Mon, 30 May 2022 08:38:19 -0300	[thread overview]
Message-ID: <20220530113820.2026574-1-david@tethera.net> (raw)

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
---
 test/T400-hooks.sh | 37 ++++++++++++++++++++++++++++++++++++-
 1 file changed, 36 insertions(+), 1 deletion(-)

diff --git a/test/T400-hooks.sh b/test/T400-hooks.sh
index 0c84b7dd..9ceefbad 100755
--- a/test/T400-hooks.sh
+++ b/test/T400-hooks.sh
@@ -15,6 +15,15 @@ EOF
     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 () {
     local TOKEN="${RANDOM}"
     mkdir -p ${HOOK_DIR}
@@ -53,8 +62,11 @@ add_message
 # create maildir structure for notmuch-insert
 mkdir -p "$MAIL_DIR"/{cur,new,tmp}
 
+ORIG_NOTMUCH_CONFIG=${NOTMUCH_CONFIG}
 for config in traditional profile explicit relative XDG split; do
     unset NOTMUCH_PROFILE
+    export NOTMUCH_CONFIG=${ORIG_NOTMUCH_CONFIG}
+    EXPECTED_CONFIG=${NOTMUCH_CONFIG}
     notmuch config set database.hook_dir
     notmuch config set database.path ${MAIL_DIR}
     case $config in
@@ -65,8 +77,10 @@ for config in traditional profile explicit relative XDG split; do
 	    dir=${HOME}/.config/notmuch/other
 	    mkdir -p ${dir}
 	    HOOK_DIR=${dir}/hooks
-	    cp ${NOTMUCH_CONFIG} ${dir}/config
+	    EXPECTED_CONFIG=${dir}/config
+	    cp ${NOTMUCH_CONFIG} ${EXPECTED_CONFIG}
 	    export NOTMUCH_PROFILE=other
+	    unset NOTMUCH_CONFIG
 	    ;;
 	explicit)
 	    HOOK_DIR=${HOME}/.notmuch-hooks
@@ -200,6 +214,27 @@ EOF
 EOF
     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}
 done
 test_done
-- 
2.35.2
\r

             reply	other threads:[~2022-05-30 11:38 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-05-30 11:38 David Bremner [this message]
2022-05-30 11:38 ` [PATCH 2/2] CLI: set NOTMUCH_CONFIG in hooks David Bremner
2022-06-04 11:11   ` [PATCH v2] " David Bremner
2022-06-18 11:27     ` David Bremner

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://notmuchmail.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220530113820.2026574-1-david@tethera.net \
    --to=david@tethera.net \
    --cc=notmuch@notmuchmail.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://yhetil.org/notmuch.git/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).