On Wed, 06 Mar 2013, Aaron Ecay <aaronecay@gmail.com> wrote: > These tests are known_broken, the following commit fixes them. > --- > > Thanks to David and Tomi for pointing out test_expect_equal_json. In > the process of implementing that, I discovered > notmuch_json_show_sanitize, which I had also not been using. This > patch fixes the test to use both these conveniences. The second patch > is not changed substantively, but I am resending it for tidiness. > > test/thread-replies | 144 ++++++++++++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 144 insertions(+) > create mode 100755 test/thread-replies > > diff --git a/test/thread-replies b/test/thread-replies > new file mode 100755 > index 0000000..a902691 > --- /dev/null > +++ b/test/thread-replies > @@ -0,0 +1,144 @@ > +#!/usr/bin/env bash > +# > +# Copyright (c) 2013 Aaron Ecay > +# > + > +test_description='test of proper handling of in-reply-to and references headers > + > +This test makes sure that the thread structure in the notmuch database is > +constructed properly, even in the presence of non-RFC-compliant headers' Nitpick, most other tests have one line test descriptions. The second paragraph could be left as comment. > + > +. ./test-lib.sh > + > +test_begin_subtest "Use References when In-Reply-To is broken" > +test_subtest_known_broken > +add_message '[id]="foo@one.com"' \ > + '[subject]=one' > +add_message '[in-reply-to]="mumble"' \ > + '[references]="<foo@one.com>"' \ > + '[subject]="Re: one"' > +output=$(notmuch show --format=json 'subject:one' | notmuch_json_show_sanitize) > +expected='[[[{"id": "foo@one.com", > + "match": true, > + "excluded": false, > + "filename": "/home/aecay/development/notmuch/notmuch-git/src/notmuch/test/tmp.thread-replies/mail/msg-001", Please replace the path with: "filename": "YYYYY", Ditto below for all of them. > + "timestamp": 978709437, > + "date_relative": "2001-01-05", > + "tags": ["inbox", "unread"], > + "headers": {"Subject": "one", > + "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"}, > + "body": [{"id": 1, > + "content-type": "text/plain", > + "content": "This is just a test message (#1)\n"}]}, > + [[{"id": "msg-002@notmuch-test-suite", > + "match": true, "excluded": false, > + "filename": "/home/aecay/development/notmuch/notmuch-git/src/notmuch/test/tmp.thread-replies/mail/msg-002", > + "timestamp": 978709437, "date_relative": "2001-01-05", > + "tags": ["inbox", "unread"], "headers": {"Subject": "Re: one", > + "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"}, > + "body": [{"id": 1, "content-type": "text/plain", > + "content": "This is just a test message (#2)\n"}]}, []]]]]]' > +expected=`echo "$expected" | notmuch_json_show_sanitize` > +test_expect_equal_json "$output" "$expected" > + > +test_begin_subtest "Prefer References to In-Reply-To" > +test_subtest_known_broken > +add_message '[id]="foo@two.com"' \ > + '[subject]=two' > +add_message '[in-reply-to]="<bar@baz.com>"' \ > + '[references]="<foo@two.com>"' \ > + '[subject]="Re: two"' > +output=$(notmuch show --format=json 'subject:two' | notmuch_json_show_sanitize) > +expected='[[[{"id": "foo@two.com", > + "match": true, "excluded": false, > + "filename": "/home/aecay/development/notmuch/notmuch-git/src/notmuch/test/tmp.thread-replies/mail/msg-003", > + "timestamp": 978709437, "date_relative": "2001-01-05", "tags": ["inbox", "unread"], > + "headers": {"Subject": "two", > + "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"}, > + "body": [{"id": 1, "content-type": "text/plain", > + "content": "This is just a test message (#3)\n"}]}, > + [[{"id": "msg-004@notmuch-test-suite", "match": true, "excluded": false, > + "filename": "/home/aecay/development/notmuch/notmuch-git/src/notmuch/test/tmp.thread-replies/mail/msg-004", > + "timestamp": 978709437, "date_relative": "2001-01-05", "tags": ["inbox", "unread"], > + "headers": {"Subject": "Re: two", > + "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"}, > + "body": [{"id": 1, > + "content-type": "text/plain", "content": "This is just a test message (#4)\n"}]}, > + []]]]]]' > +expected=`echo "$expected" | notmuch_json_show_sanitize` > +test_expect_equal_json "$output" "$expected" > + > +test_begin_subtest "Use In-Reply-To when no References" > +test_subtest_known_broken As David said, this is not broken currently, as In-Reply-To is used unconditionally. Just drop the broken annotation, the test itself is useful. > +add_message '[id]="foo@three.com"' \ > + '[subject]="three"' > +add_message '[in-reply-to]="<foo@three.com>"' \ > + '[subject]="Re: three"' > +output=$(notmuch show --format=json 'subject:three' | notmuch_json_show_sanitize) > +expected='[[[{"id": "foo@three.com", "match": true, "excluded": false, > + "filename": "/home/aecay/development/notmuch/notmuch-git/src/notmuch/test/tmp.thread-replies/mail/msg-005", > + "timestamp": 978709437, "date_relative": "2001-01-05", "tags": ["inbox", "unread"], > + "headers": {"Subject": "three", > + "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"}, "body": [{"id": 1, > + "content-type": "text/plain", "content": "This is just a test message (#5)\n"}]}, > + [[{"id": "msg-006@notmuch-test-suite", "match": true, "excluded": false, > + "filename": "/home/aecay/development/notmuch/notmuch-git/src/notmuch/test/tmp.thread-replies/mail/msg-006", > + "timestamp": 978709437, "date_relative": "2001-01-05", "tags": ["inbox", "unread"], > + "headers": {"Subject": "Re: three", > + "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"}, "body": [{"id": 1, > + "content-type": "text/plain", "content": "This is just a test message (#6)\n"}]}, > + []]]]]]' > +expected=`echo "$expected" | notmuch_json_show_sanitize` > +test_expect_equal_json "$output" "$expected" > + > +test_begin_subtest "Use last Reference" > +test_subtest_known_broken > +add_message '[id]="foo@four.com"' \ > + '[subject]="four"' > +add_message '[id]="bar@four.com"' \ > + '[subject]="not-four"' > +add_message '[in-reply-to]="<baz@four.com>"' \ > + '[references]="<baz@four.com> <foo@four.com>"' \ > + '[subject]="neither"' > +output=$(notmuch show --format=json 'subject:four' | notmuch_json_show_sanitize) > +expected='[[[{"id": "foo@four.com", "match": true, "excluded": false, > + "filename": "/home/aecay/development/notmuch/notmuch-git/src/notmuch/test/tmp.thread-replies/mail/msg-007", > + "timestamp": 978709437, "date_relative": "2001-01-05", "tags": ["inbox", "unread"], > + "headers": {"Subject": "four", > + "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"}, "body": [{"id": 1, > + "content-type": "text/plain", "content": "This is just a test message (#7)\n"}]}, > + [[{"id": "msg-009@notmuch-test-suite", "match": false, "excluded": false, > + "filename": "/home/aecay/development/notmuch/notmuch-git/src/notmuch/test/tmp.thread-replies/mail/msg-009", > + "timestamp": 978709437, "date_relative": "2001-01-05", "tags": ["inbox", "unread"], > + "headers": {"Subject": "neither", > + "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"}, "body": [{"id": 1, > + "content-type": "text/plain", "content": "This is just a test message (#9)\n"}]}, > + []]]]], [[{"id": "bar@four.com", "match": true, "excluded": false, > + "filename": "/home/aecay/development/notmuch/notmuch-git/src/notmuch/test/tmp.thread-replies/mail/msg-008", > + "timestamp": 978709437, "date_relative": "2001-01-05", "tags": ["inbox", "unread"], > + "headers": {"Subject": "not-four", > + "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"}, "body": [{"id": 1, > + "content-type": "text/plain", "content": "This is just a test message (#8)\n"}]}, []]]]' > +expected=`echo "$expected" | notmuch_json_show_sanitize` > +test_expect_equal_json "$output" "$expected" > + > + > +test_done > -- > 1.8.1.5 > > _______________________________________________ > notmuch mailing list > notmuch@notmuchmail.org > http://notmuchmail.org/mailman/listinfo/notmuch