On Wed, 06 Mar 2013, Aaron Ecay <[email protected]> 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]="[email protected]"' \ > + '[subject]=one' > +add_message '[in-reply-to]="mumble"' \ > + '[references]="<[email protected]>"' \ > + '[subject]="Re: one"' > +output=$(notmuch show --format=json 'subject:one' | > notmuch_json_show_sanitize) > +expected='[[[{"id": "[email protected]", > + "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 <[email protected]>", > + "To": "Notmuch Test Suite <[email protected]>", > + "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 <[email protected]>", > + "To": "Notmuch Test Suite <[email protected]>", > + "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]="[email protected]"' \ > + '[subject]=two' > +add_message '[in-reply-to]="<[email protected]>"' \ > + '[references]="<[email protected]>"' \ > + '[subject]="Re: two"' > +output=$(notmuch show --format=json 'subject:two' | > notmuch_json_show_sanitize) > +expected='[[[{"id": "[email protected]", > + "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 <[email protected]>", > + "To": "Notmuch Test Suite <[email protected]>", > + "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 <[email protected]>", > + "To": "Notmuch Test Suite <[email protected]>", > + "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]="[email protected]"' \ > + '[subject]="three"' > +add_message '[in-reply-to]="<[email protected]>"' \ > + '[subject]="Re: three"' > +output=$(notmuch show --format=json 'subject:three' | > notmuch_json_show_sanitize) > +expected='[[[{"id": "[email protected]", "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 <[email protected]>", > + "To": "Notmuch Test Suite <[email protected]>", > + "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 <[email protected]>", > + "To": "Notmuch Test Suite <[email protected]>", > + "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]="[email protected]"' \ > + '[subject]="four"' > +add_message '[id]="[email protected]"' \ > + '[subject]="not-four"' > +add_message '[in-reply-to]="<[email protected]>"' \ > + '[references]="<[email protected]> <[email protected]>"' \ > + '[subject]="neither"' > +output=$(notmuch show --format=json 'subject:four' | > notmuch_json_show_sanitize) > +expected='[[[{"id": "[email protected]", "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 <[email protected]>", > + "To": "Notmuch Test Suite <[email protected]>", > + "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 <[email protected]>", > + "To": "Notmuch Test Suite <[email protected]>", > + "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": "[email protected]", "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 <[email protected]>", > + "To": "Notmuch Test Suite <[email protected]>", > + "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 > [email protected] > http://notmuchmail.org/mailman/listinfo/notmuch _______________________________________________ notmuch mailing list [email protected] http://notmuchmail.org/mailman/listinfo/notmuch
