Quoth David Bremner on Dec 08 at 11:52 pm: > add a new function notmuch_date_sanitize for rfc822-ish things. Add > date sanitization to notmuch_show_sanitize_all and use it more places. > > This is all in aid of a transition to unique timestamps on messages. > --- > test/emacs | 12 +++++++----- > test/emacs-show | 10 ++++++---- > test/encoding | 8 ++++---- > test/raw | 8 ++++---- > test/test-lib.sh | 9 ++++++++- > 5 files changed, 29 insertions(+), 18 deletions(-) > > diff --git a/test/emacs b/test/emacs > index 456435c..1b1ebe3 100755 > --- a/test/emacs > +++ b/test/emacs > @@ -86,15 +86,16 @@ add_message "[subject]=\"message-with-invalid-from\"" \ > "[from]=\"\\\"Invalid \\\" From\\\" <test_suite@notmuchmail.org>\"" > thread=$(notmuch search --output=threads subject:message-with-invalid-from) > test_emacs "(notmuch-show \"$thread\") > - (test-output)" > + (test-output \"OUTPUT.raw\")" > cat <<EOF >EXPECTED > "Invalid " (2001-01-05) (inbox) > Subject: message-with-invalid-from > To: Notmuch Test Suite <test_suite@notmuchmail.org> > -Date: Fri, 05 Jan 2001 15:43:57 +0000 > +Date: GENERATED_DATE > > This is just a test message (#1) > EOF > +notmuch_date_sanitize < OUTPUT.raw > OUTPUT > test_expect_equal_file OUTPUT EXPECTED > > test_begin_subtest "Navigation of notmuch-search to thread view" > @@ -605,11 +606,11 @@ Q: Why is top-posting such a bad thing? > A: Top-posting. > Q: What is the most annoying thing in e-mail?"' > test_emacs "(notmuch-show \"top-posting\") > - (test-visible-output)" > + (test-visible-output \"OUTPUT.raw\")" > echo "Notmuch Test Suite <test_suite@notmuchmail.org> (2001-01-05) (inbox) > Subject: The problem with top-posting > To: Notmuch Test Suite <test_suite@notmuchmail.org> > -Date: Fri, 05 Jan 2001 15:43:57 +0000 > +Date: GENERATED_DATE > > A: Because it messes up the order in which people normally read text. > Q: Why is top-posting such a bad thing? > @@ -618,13 +619,14 @@ Q: What is the most annoying thing in e-mail? > Top Poster <top@poster.com> (2001-01-05) (inbox unread) > Subject: Re: The problem with top-posting > To: Notmuch Test Suite <test_suite@notmuchmail.org> > -Date: Fri, 05 Jan 2001 15:43:57 +0000 > +Date: GENERATED_DATE > > Thanks for the advice! I will be sure to put it to good use. > > -Top Poster > > [ 9-line hidden original message. Click/Enter to show. ]" > EXPECTED > +notmuch_date_sanitize < OUTPUT.raw > OUTPUT > test_expect_equal_file OUTPUT EXPECTED > > test_begin_subtest "Hiding message in notmuch-show view" > diff --git a/test/emacs-show b/test/emacs-show > index ec86333..2a3a535 100755 > --- a/test/emacs-show > +++ b/test/emacs-show > @@ -19,13 +19,14 @@ cat <<EOF >EXPECTED > Notmuch Test Suite <test_suite@notmuchmail.org> (2001-01-05) (inbox) > Subject: Hiding Original Message region at beginning of a message > To: Notmuch Test Suite <test_suite@notmuchmail.org> > -Date: Fri, 05 Jan 2001 15:43:57 +0000 > +Date: GENERATED_DATE > > [ 2-line hidden original message. Click/Enter to show. ] > EOF > > test_emacs "(notmuch-show \"id:$message_id\") > - (test-visible-output)" > + (test-visible-output \"OUTPUT.raw\")" > +notmuch_date_sanitize < OUTPUT.raw > OUTPUT > test_expect_equal_file OUTPUT EXPECTED > > test_begin_subtest "Bare subject #1" > @@ -130,12 +131,12 @@ mid:abc%20def > mid:abc. mid:abc, mid:abc;"' > test_emacs '(notmuch-show "id:'$gen_msg_id'") > (notmuch-test-mark-links) > - (test-visible-output)' > + (test-visible-output "OUTPUT.raw")' > cat <<EOF >EXPECTED > Notmuch Test Suite <test_suite@notmuchmail.org> (2001-01-05) (inbox) > Subject: id buttonization > To: Notmuch Test Suite <test_suite@notmuchmail.org> > -Date: Fri, 05 Jan 2001 15:43:57 +0000 > +Date: GENERATED_DATE > > <<id:abc>> > <<id:abc.def>>. <<id:abc,def>>, <<id:abc;def>>; <<id:abc:def>>: > @@ -159,6 +160,7 @@ cid:xxx > <<mid:abc%20def>> > <<mid:abc>>. <<mid:abc>>, <<mid:abc>>; > EOF > +notmuch_date_sanitize < OUTPUT.raw > OUTPUT > test_expect_equal_file OUTPUT EXPECTED > > > diff --git a/test/encoding b/test/encoding > index 8609652..b6c86bf 100755 > --- a/test/encoding > +++ b/test/encoding > @@ -5,14 +5,14 @@ test_description="encoding issues" > test_begin_subtest "Message with text of unknown charset" > add_message '[content-type]="text/plain; charset=unknown-8bit"' \ > "[body]=irrelevant" > -output=$(notmuch show id:${gen_msg_id} 2>&1 | notmuch_show_sanitize) > -test_expect_equal "$output" "message{ id:msg-001@notmuch-test-suite depth:0 match:1 excluded:0 filename:/XXX/mail/msg-001 > +output=$(notmuch show id:${gen_msg_id} 2>&1 | notmuch_show_sanitize_all) This may be orthogonal to this series, but I don't get why we have both notmuch_show_sanitize and notmuch_show_sanitize_all (especially when the "all" version is not obviously a superset of the non-"all" version!) Do you have a sense for whether these two functions could be easily merged? > +test_expect_equal "$output" "message{ id:XXXXX depth:0 match:1 excluded:0 filename:XXXXX > header{ > Notmuch Test Suite <test_suite@notmuchmail.org> (2001-01-05) (inbox unread) > Subject: Message with text of unknown charset > From: Notmuch Test Suite <test_suite@notmuchmail.org> > To: Notmuch Test Suite <test_suite@notmuchmail.org> > -Date: Fri, 05 Jan 2001 15:43:57 +0000 > +Date: GENERATED_DATE > header} > body{ > part{ ID: 1, Content-type: text/plain > @@ -26,7 +26,7 @@ add_message '[content-type]="text/plain; charset=iso-8859-2"' \ > '[content-transfer-encoding]=8bit' \ > '[subject]="ISO-8859-2 encoded message"' \ > "[body]=$'Czech word tu\350\362\341\350\350\355 means pinguin\'s.'" # ISO-8859-2 characters are generated by shell's escape sequences > -output=$(notmuch search tučňáččí 2>&1 | notmuch_show_sanitize) > +output=$(notmuch search tučňáččí 2>&1 | notmuch_show_sanitize_all) > test_expect_equal "$output" "thread:0000000000000002 2001-01-05 [1/1] Notmuch Test Suite; ISO-8859-2 encoded message (inbox unread)" > > test_begin_subtest "RFC 2047 encoded word with spaces" > diff --git a/test/raw b/test/raw > index de0b867..daf5735 100755 > --- a/test/raw > +++ b/test/raw > @@ -11,22 +11,22 @@ output=$(notmuch show --format=raw "*" 2>&1) > test_expect_equal "$output" "Error: search term did not match precisely one message." > > test_begin_subtest "Show a raw message" > -output=$(notmuch show --format=raw id:msg-001@notmuch-test-suite) > +output=$(notmuch show --format=raw id:msg-001@notmuch-test-suite | notmuch_date_sanitize) > test_expect_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org> > To: Notmuch Test Suite <test_suite@notmuchmail.org> > Message-Id: <msg-001@notmuch-test-suite> > Subject: Test message #1 > -Date: Fri, 05 Jan 2001 15:43:57 +0000 > +Date: GENERATED_DATE > > This is just a test message (#1)" > > test_begin_subtest "Show another raw message" > -output=$(notmuch show --format=raw id:msg-002@notmuch-test-suite) > +output=$(notmuch show --format=raw id:msg-002@notmuch-test-suite | notmuch_date_sanitize) > test_expect_equal "$output" "From: Notmuch Test Suite <test_suite@notmuchmail.org> > To: Notmuch Test Suite <test_suite@notmuchmail.org> > Message-Id: <msg-002@notmuch-test-suite> > Subject: Test message #2 > -Date: Fri, 05 Jan 2001 15:43:57 +0000 > +Date: GENERATED_DATE > > This is just a test message (#2)" > > diff --git a/test/test-lib.sh b/test/test-lib.sh > index 9d2f805..d238c66 100644 > --- a/test/test-lib.sh > +++ b/test/test-lib.sh > @@ -618,7 +618,8 @@ notmuch_show_sanitize_all () > { > sed \ > -e 's| filename:.*| filename:XXXXX|' \ > - -e 's| id:[^ ]* | id:XXXXX |' > + -e 's| id:[^ ]* | id:XXXXX |' \ > + -e 's|Date: Fri, 05 Jan 2001.*|Date: GENERATED_DATE|' Rather than (nearly) duplicating the regexp, does it work to pipe this through notmuch_date_sanitize? Or do the minor differences matter? > } > > notmuch_json_show_sanitize () > @@ -641,6 +642,12 @@ notmuch_emacs_error_sanitize () > -e 's/^\[.*\]$/[XXX]/' \ > -e "s|^\(command: \)\{0,1\}/.*/$command|\1YYY/$command|" > } > + > +notmuch_date_sanitize () > +{ > + sed \ > + -e 's/^Date: Fri, 05 Jan 2001 .*/Date: GENERATED_DATE/' > +} > # End of notmuch helper functions > > # Use test_set_prereq to tell that a particular prerequisite is available.