[PATCH] test/crypto: remove headers more robustly

David Bremner david at tethera.net
Fri Sep 1 17:11:19 PDT 2017


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.

[1] id:20170817175145.3204-7-notmuch at thecybershadow.net
---
 test/T350-crypto.sh |  2 +-
 test/test-lib.sh    | 11 +++++++++++
 2 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/test/T350-crypto.sh b/test/T350-crypto.sh
index 7dab39a2..fd950952 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_reply_sanitize_refs)
 expected='From: Notmuch Test Suite <test_suite at notmuchmail.org>
 Subject: Re: test encrypted message 002
 
diff --git a/test/test-lib.sh b/test/test-lib.sh
index d2b2a47f..4716f649 100644
--- a/test/test-lib.sh
+++ b/test/test-lib.sh
@@ -507,6 +507,17 @@ NOTMUCH_DUMP_TAGS ()
     notmuch dump --include=tags "${@}" | sed '/^#/d' | sort
 }
 
+notmuch_reply_sanitize_refs ()
+{
+    $NOTMUCH_PYTHON -c "
+import email,sys
+msg=email.message_from_file(sys.stdin)
+del msg['in-reply-to']
+del msg['references']
+print(msg.as_string(False))
+"
+}
+
 notmuch_search_sanitize ()
 {
     perl -pe 's/("?thread"?: ?)("?)................("?)/\1\2XXX\3/'
-- 
2.14.1



More information about the notmuch mailing list