From ec37900c5f0316e1f7345fe413402e6dc8bb9547 Mon Sep 17 00:00:00 2001 From: David Bremner Date: Fri, 1 Sep 2017 20:59:47 -0300 Subject: [PATCH] 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 --- test/T350-crypto.sh | 2 +- test/test-lib.sh | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) 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 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/'