mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-25 20:38:08 +01:00
abeac48522
These queries will match exactly the set of messages currently in the thread, even if more messages later arrive. Two queries are provided: one for matched messages and one for unmatched messages. This can be used to fix race conditions with tagging threads from search results. While tagging based on a thread: query can affect messages that arrived after the search, tagging based on stable queries affects only the messages the user was shown in the search UI. Since we want clients to be able to depend on the presence of these queries, this ushers in schema version 2.
162 lines
4.3 KiB
Bash
Executable file
162 lines
4.3 KiB
Bash
Executable file
#!/usr/bin/env bash
|
||
test_description='messages with missing headers'
|
||
. ./test-lib.sh
|
||
|
||
# Notmuch requires at least one of from, subject, or to or it will
|
||
# ignore the file. Generate two messages so that together they cover
|
||
# all possible missing headers. We also give one of the messages a
|
||
# date to ensure stable result ordering.
|
||
|
||
cat <<EOF > "${MAIL_DIR}/msg-2"
|
||
To: Notmuch Test Suite <test_suite@notmuchmail.org>
|
||
Date: Fri, 05 Jan 2001 15:43:57 +0000
|
||
|
||
Body
|
||
EOF
|
||
|
||
cat <<EOF > "${MAIL_DIR}/msg-1"
|
||
From: Notmuch Test Suite <test_suite@notmuchmail.org>
|
||
|
||
Body
|
||
EOF
|
||
|
||
NOTMUCH_NEW
|
||
|
||
test_begin_subtest "Search: text"
|
||
output=$(notmuch search '*' | notmuch_search_sanitize)
|
||
test_expect_equal "$output" "\
|
||
thread:XXX 2001-01-05 [1/1] (null); (inbox unread)
|
||
thread:XXX 1970-01-01 [1/1] Notmuch Test Suite; (inbox unread)"
|
||
|
||
test_begin_subtest "Search: json"
|
||
output=$(notmuch search --format=json '*' | notmuch_search_sanitize)
|
||
test_expect_equal_json "$output" '
|
||
[
|
||
{
|
||
"authors": "",
|
||
"date_relative": "2001-01-05",
|
||
"matched": 1,
|
||
"subject": "",
|
||
"tags": [
|
||
"inbox",
|
||
"unread"
|
||
],
|
||
"thread": "XXX",
|
||
"timestamp": 978709437,
|
||
"total": 1,
|
||
"query": ["id:notmuch-sha1-7a6e4eac383ef958fcd3ebf2143db71b8ff01161", null]
|
||
},
|
||
{
|
||
"authors": "Notmuch Test Suite",
|
||
"date_relative": "1970-01-01",
|
||
"matched": 1,
|
||
"subject": "",
|
||
"tags": [
|
||
"inbox",
|
||
"unread"
|
||
],
|
||
"thread": "XXX",
|
||
"timestamp": 0,
|
||
"total": 1,
|
||
"query": ["id:notmuch-sha1-ca55943aff7a72baf2ab21fa74fab3d632401334", null]
|
||
}
|
||
]'
|
||
|
||
test_begin_subtest "Show: text"
|
||
output=$(notmuch show '*' | notmuch_show_sanitize)
|
||
test_expect_equal "$output" "\
|
||
message{ id:notmuch-sha1-7a6e4eac383ef958fcd3ebf2143db71b8ff01161 depth:0 match:1 excluded:0 filename:/XXX/mail/msg-2
|
||
header{
|
||
(2001-01-05) (inbox unread)
|
||
Subject: (null)
|
||
From: (null)
|
||
To: Notmuch Test Suite <test_suite@notmuchmail.org>
|
||
Date: Fri, 05 Jan 2001 15:43:57 +0000
|
||
header}
|
||
body{
|
||
part{ ID: 1, Content-type: text/plain
|
||
Body
|
||
part}
|
||
body}
|
||
message}
|
||
message{ id:notmuch-sha1-ca55943aff7a72baf2ab21fa74fab3d632401334 depth:0 match:1 excluded:0 filename:/XXX/mail/msg-1
|
||
header{
|
||
Notmuch Test Suite <test_suite@notmuchmail.org> (1970-01-01) (inbox unread)
|
||
Subject: (null)
|
||
From: Notmuch Test Suite <test_suite@notmuchmail.org>
|
||
Date: Thu, 01 Jan 1970 00:00:00 +0000
|
||
header}
|
||
body{
|
||
part{ ID: 1, Content-type: text/plain
|
||
Body
|
||
part}
|
||
body}
|
||
message}"
|
||
|
||
test_begin_subtest "Show: json"
|
||
output=$(notmuch show --format=json '*' | notmuch_json_show_sanitize)
|
||
test_expect_equal_json "$output" '
|
||
[
|
||
[
|
||
[
|
||
{
|
||
"body": [
|
||
{
|
||
"content": "Body\n",
|
||
"content-type": "text/plain",
|
||
"id": 1
|
||
}
|
||
],
|
||
"date_relative": "2001-01-05",
|
||
"excluded": false,
|
||
"filename": "YYYYY",
|
||
"headers": {
|
||
"Date": "Fri, 05 Jan 2001 15:43:57 +0000",
|
||
"From": "",
|
||
"Subject": "",
|
||
"To": "Notmuch Test Suite <test_suite@notmuchmail.org>"
|
||
},
|
||
"id": "XXXXX",
|
||
"match": true,
|
||
"tags": [
|
||
"inbox",
|
||
"unread"
|
||
],
|
||
"timestamp": 978709437
|
||
},
|
||
[]
|
||
]
|
||
],
|
||
[
|
||
[
|
||
{
|
||
"body": [
|
||
{
|
||
"content": "Body\n",
|
||
"content-type": "text/plain",
|
||
"id": 1
|
||
}
|
||
],
|
||
"date_relative": "1970-01-01",
|
||
"excluded": false,
|
||
"filename": "YYYYY",
|
||
"headers": {
|
||
"Date": "Thu, 01 Jan 1970 00:00:00 +0000",
|
||
"From": "Notmuch Test Suite <test_suite@notmuchmail.org>",
|
||
"Subject": ""
|
||
},
|
||
"id": "XXXXX",
|
||
"match": true,
|
||
"tags": [
|
||
"inbox",
|
||
"unread"
|
||
],
|
||
"timestamp": 0
|
||
},
|
||
[]
|
||
]
|
||
]
|
||
]'
|
||
|
||
|
||
test_done
|