aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorDavid Bremner <david@tethera.net>2017-09-01 20:59:47 -0300
committerDavid Bremner <david@tethera.net>2017-09-03 08:06:15 -0300
commitec37900c5f0316e1f7345fe413402e6dc8bb9547 (patch)
tree2bff1c8d3a2fff88adde6c6645c3ae00b1c550ae /test
parent46bda291ba6b73266f6e48a539af7772a4d09edf (diff)
test/crypto: remove headers more robustly
In [1], Vladimir Panteleev observed that the In-Reply-To and References headers could be wrapped in the 'default' output format of notmuch-reply, depending on the version of Emacs creating the message. In my own experiments notmuch-reply sometimes wraps headers with only one message-id if that message-id is long enough. However it happens, this causes the previous approach using grep to fail. Since I found the proposed unwrapping shell fragment in [1] a bit hard to follow, I decided to write a little python script instead. Then Tomi suggested a slight generalization of my script, and here we are. [1] id:20170817175145.3204-7-notmuch@thecybershadow.net
Diffstat (limited to 'test')
-rwxr-xr-xtest/T350-crypto.sh2
-rw-r--r--test/test-lib.sh10
2 files changed, 11 insertions, 1 deletions
diff --git a/test/T350-crypto.sh b/test/T350-crypto.sh
index 7dab39a2..1d408af7 100755
--- a/test/T350-crypto.sh
+++ b/test/T350-crypto.sh
@@ -394,7 +394,7 @@ test_expect_equal_json \
test_begin_subtest "reply to encrypted message"
output=$(notmuch reply --decrypt subject:"test encrypted message 002" \
- | grep -v -e '^In-Reply-To:' -e '^References:')
+ | notmuch_drop_mail_headers In-Reply-To References)
expected='From: Notmuch Test Suite <test_suite@notmuchmail.org>
Subject: Re: test encrypted message 002
diff --git a/test/test-lib.sh b/test/test-lib.sh
index d2b2a47f..09ee815d 100644
--- a/test/test-lib.sh
+++ b/test/test-lib.sh
@@ -507,6 +507,16 @@ NOTMUCH_DUMP_TAGS ()
notmuch dump --include=tags "${@}" | sed '/^#/d' | sort
}
+notmuch_drop_mail_headers ()
+{
+ $NOTMUCH_PYTHON -c "
+import email,sys
+msg=email.message_from_file(sys.stdin)
+for hdr in sys.argv[1:]: del msg[hdr]
+print(msg.as_string(False))
+" $*
+}
+
notmuch_search_sanitize ()
{
perl -pe 's/("?thread"?: ?)("?)................("?)/\1\2XXX\3/'