mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-12-22 09:24:54 +01:00
test: add some exclude tests
Systematically test the exclude options for search. Also move the search existing exclude tests into the new test. There is some overlap between the two sets of tests but many of the existing ones are there because they triggered bugs in the past so I have kept them to ensure coverage.
This commit is contained in:
parent
903327279c
commit
6478e1bc92
4 changed files with 424 additions and 69 deletions
21
test/count
21
test/count
|
@ -37,25 +37,4 @@ test_expect_equal \
|
||||||
"0" \
|
"0" \
|
||||||
"`notmuch count --output=threads ${SEARCH}`"
|
"`notmuch count --output=threads ${SEARCH}`"
|
||||||
|
|
||||||
test_begin_subtest "count excluding \"deleted\" messages"
|
|
||||||
notmuch config set search.exclude_tags deleted
|
|
||||||
generate_message '[subject]="Not deleted"'
|
|
||||||
generate_message '[subject]="Another not deleted"'
|
|
||||||
generate_message '[subject]="Deleted"'
|
|
||||||
notmuch new > /dev/null
|
|
||||||
notmuch tag +deleted id:$gen_msg_id
|
|
||||||
test_expect_equal \
|
|
||||||
"2" \
|
|
||||||
"`notmuch count subject:deleted`"
|
|
||||||
|
|
||||||
test_begin_subtest "count \"deleted\" messages, exclude overridden"
|
|
||||||
test_expect_equal \
|
|
||||||
"1" \
|
|
||||||
"`notmuch count subject:deleted and tag:deleted`"
|
|
||||||
|
|
||||||
test_begin_subtest "count \"deleted\" messages, --exclude=false"
|
|
||||||
test_expect_equal \
|
|
||||||
"3" \
|
|
||||||
"`notmuch count --exclude=false subject:deleted`"
|
|
||||||
|
|
||||||
test_done
|
test_done
|
||||||
|
|
423
test/excludes
Executable file
423
test/excludes
Executable file
|
@ -0,0 +1,423 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
test_description='"notmuch search, count and show" with excludes in several variations'
|
||||||
|
. ./test-lib.sh
|
||||||
|
|
||||||
|
# Generates a thread consisting of a top level message and 'length'
|
||||||
|
# replies. The subject of the top message 'subject: top message"
|
||||||
|
# and the subject of the nth reply in the thread is "subject: reply n"
|
||||||
|
generate_thread ()
|
||||||
|
{
|
||||||
|
local subject="$1"
|
||||||
|
local length="$2"
|
||||||
|
generate_message '[subject]="'"${subject}: top message"'"' '[body]="'"body of top message"'"'
|
||||||
|
parent_id=$gen_msg_id
|
||||||
|
gen_thread_msg_id[0]=$gen_msg_id
|
||||||
|
for i in `seq 1 $length`
|
||||||
|
do
|
||||||
|
generate_message '[subject]="'"${subject}: reply $i"'"' \
|
||||||
|
"[in-reply-to]=\<$parent_id\>" \
|
||||||
|
'[body]="'"body of reply $i"'"'
|
||||||
|
gen_thread_msg_id[$i]=$gen_msg_id
|
||||||
|
parent_id=$gen_msg_id
|
||||||
|
done
|
||||||
|
notmuch new > /dev/null
|
||||||
|
# We cannot retrieve the thread_id until after we have run notmuch new.
|
||||||
|
gen_thread_id=`notmuch search --output=threads id:${gen_thread_msg_id[0]}`
|
||||||
|
}
|
||||||
|
|
||||||
|
#############################################
|
||||||
|
# These are the original search exclude tests.
|
||||||
|
|
||||||
|
test_begin_subtest "Search, exclude \"deleted\" messages from search"
|
||||||
|
notmuch config set search.exclude_tags deleted
|
||||||
|
generate_message '[subject]="Not deleted"'
|
||||||
|
not_deleted_id=$gen_msg_id
|
||||||
|
generate_message '[subject]="Deleted"'
|
||||||
|
notmuch new > /dev/null
|
||||||
|
notmuch tag +deleted id:$gen_msg_id
|
||||||
|
deleted_id=$gen_msg_id
|
||||||
|
output=$(notmuch search subject:deleted | notmuch_search_sanitize)
|
||||||
|
test_expect_equal "$output" "thread:XXX 2001-01-05 [1/1] Notmuch Test Suite; Not deleted (inbox unread)"
|
||||||
|
|
||||||
|
test_begin_subtest "Search, exclude \"deleted\" messages from message search"
|
||||||
|
output=$(notmuch search --output=messages subject:deleted | notmuch_search_sanitize)
|
||||||
|
test_expect_equal "$output" "id:$not_deleted_id"
|
||||||
|
|
||||||
|
test_begin_subtest "Search, exclude \"deleted\" messages from message search --exclude=false"
|
||||||
|
output=$(notmuch search --exclude=false --output=messages subject:deleted | notmuch_search_sanitize)
|
||||||
|
test_expect_equal "$output" "id:$not_deleted_id
|
||||||
|
id:$deleted_id"
|
||||||
|
|
||||||
|
test_begin_subtest "Search, exclude \"deleted\" messages from message search (non-existent exclude-tag)"
|
||||||
|
notmuch config set search.exclude_tags deleted non_existent_tag
|
||||||
|
output=$(notmuch search --output=messages subject:deleted | notmuch_search_sanitize)
|
||||||
|
test_expect_equal "$output" "id:$not_deleted_id"
|
||||||
|
notmuch config set search.exclude_tags deleted
|
||||||
|
|
||||||
|
test_begin_subtest "Search, exclude \"deleted\" messages from search, overridden"
|
||||||
|
output=$(notmuch search subject:deleted and tag:deleted | notmuch_search_sanitize)
|
||||||
|
test_expect_equal "$output" "thread:XXX 2001-01-05 [1/1] Notmuch Test Suite; Deleted (deleted inbox unread)"
|
||||||
|
|
||||||
|
test_begin_subtest "Search, exclude \"deleted\" messages from threads"
|
||||||
|
add_message '[subject]="Not deleted reply"' '[in-reply-to]="<$gen_msg_id>"'
|
||||||
|
output=$(notmuch search subject:deleted | notmuch_search_sanitize)
|
||||||
|
test_expect_equal "$output" "thread:XXX 2001-01-05 [1/1] Notmuch Test Suite; Not deleted (inbox unread)
|
||||||
|
thread:XXX 2001-01-05 [1/2] Notmuch Test Suite; Not deleted reply (deleted inbox unread)"
|
||||||
|
|
||||||
|
test_begin_subtest "Search, don't exclude \"deleted\" messages when --exclude=flag specified"
|
||||||
|
output=$(notmuch search --exclude=flag subject:deleted | notmuch_search_sanitize)
|
||||||
|
test_expect_equal "$output" "thread:XXX 2001-01-05 [1/1] Notmuch Test Suite; Not deleted (inbox unread)
|
||||||
|
thread:XXX 2001-01-05 [1/2] Notmuch Test Suite; Not deleted reply (deleted inbox unread)"
|
||||||
|
|
||||||
|
test_begin_subtest "Search, don't exclude \"deleted\" messages from search if not configured"
|
||||||
|
notmuch config set search.exclude_tags
|
||||||
|
output=$(notmuch search subject:deleted | notmuch_search_sanitize)
|
||||||
|
test_expect_equal "$output" "thread:XXX 2001-01-05 [1/1] Notmuch Test Suite; Not deleted (inbox unread)
|
||||||
|
thread:XXX 2001-01-05 [2/2] Notmuch Test Suite; Deleted (deleted inbox unread)"
|
||||||
|
|
||||||
|
|
||||||
|
########################################################
|
||||||
|
# We construct some threads for the tests. We use the tag "test" to
|
||||||
|
# indicate which messages we will search for.
|
||||||
|
|
||||||
|
# A thread of deleted messages; test matches one of them.
|
||||||
|
generate_thread "All messages excluded: single match" 5
|
||||||
|
notmuch tag +deleted $gen_thread_id
|
||||||
|
notmuch tag +test id:${gen_thread_msg_id[2]}
|
||||||
|
|
||||||
|
# A thread of deleted messages; test matches two of them.
|
||||||
|
generate_thread "All messages excluded: double match" 5
|
||||||
|
notmuch tag +deleted $gen_thread_id
|
||||||
|
notmuch tag +test id:${gen_thread_msg_id[2]}
|
||||||
|
notmuch tag +test id:${gen_thread_msg_id[4]}
|
||||||
|
|
||||||
|
# A thread some messages deleted; test only matches a deleted message.
|
||||||
|
generate_thread "Some messages excluded: single excluded match" 5
|
||||||
|
notmuch tag +deleted +test id:${gen_thread_msg_id[3]}
|
||||||
|
|
||||||
|
# A thread some messages deleted; test only matches a non-deleted message.
|
||||||
|
generate_thread "Some messages excluded: single non-excluded match" 5
|
||||||
|
notmuch tag +deleted id:${gen_thread_msg_id[2]}
|
||||||
|
notmuch tag +test id:${gen_thread_msg_id[4]}
|
||||||
|
|
||||||
|
# A thread no messages deleted; test matches a message.
|
||||||
|
generate_thread "No messages excluded: single match" 5
|
||||||
|
notmuch tag +test id:${gen_thread_msg_id[3]}
|
||||||
|
|
||||||
|
# Temporarily remove excludes to get list of matching messages
|
||||||
|
notmuch config set search.exclude_tags
|
||||||
|
matching_message_ids=( `notmuch search --output=messages tag:test` )
|
||||||
|
notmuch config set search.exclude_tags deleted
|
||||||
|
|
||||||
|
#########################################
|
||||||
|
# Notmuch search tests
|
||||||
|
|
||||||
|
test_begin_subtest "Search, default exclusion (thread summary)"
|
||||||
|
output=$(notmuch search tag:test | notmuch_search_sanitize)
|
||||||
|
test_expect_equal "$output" "thread:XXX 2001-01-05 [1/6] Notmuch Test Suite; Some messages excluded: single non-excluded match: reply 4 (deleted inbox test unread)
|
||||||
|
thread:XXX 2001-01-05 [1/6] Notmuch Test Suite; No messages excluded: single match: reply 3 (inbox test unread)"
|
||||||
|
|
||||||
|
test_begin_subtest "Search, default exclusion (messages)"
|
||||||
|
output=$(notmuch search --output=messages tag:test | notmuch_search_sanitize)
|
||||||
|
test_expect_equal "$output" "${matching_message_ids[4]}
|
||||||
|
${matching_message_ids[5]}"
|
||||||
|
|
||||||
|
test_begin_subtest "Search, exclude=true (thread summary)"
|
||||||
|
output=$(notmuch search --exclude=true tag:test | notmuch_search_sanitize)
|
||||||
|
test_expect_equal "$output" "thread:XXX 2001-01-05 [1/6] Notmuch Test Suite; Some messages excluded: single non-excluded match: reply 4 (deleted inbox test unread)
|
||||||
|
thread:XXX 2001-01-05 [1/6] Notmuch Test Suite; No messages excluded: single match: reply 3 (inbox test unread)"
|
||||||
|
|
||||||
|
test_begin_subtest "Search, exclude=true (messages)"
|
||||||
|
output=$(notmuch search --exclude=true --output=messages tag:test | notmuch_search_sanitize)
|
||||||
|
test_expect_equal "$output" "${matching_message_ids[4]}
|
||||||
|
${matching_message_ids[5]}"
|
||||||
|
|
||||||
|
test_begin_subtest "Search, exclude=false (thread summary)"
|
||||||
|
output=$(notmuch search --exclude=false tag:test | notmuch_search_sanitize)
|
||||||
|
test_expect_equal "$output" "thread:XXX 2001-01-05 [1/6] Notmuch Test Suite; All messages excluded: single match: reply 2 (deleted inbox test unread)
|
||||||
|
thread:XXX 2001-01-05 [2/6] Notmuch Test Suite; All messages excluded: double match: reply 2 (deleted inbox test unread)
|
||||||
|
thread:XXX 2001-01-05 [1/6] Notmuch Test Suite; Some messages excluded: single excluded match: reply 3 (deleted inbox test unread)
|
||||||
|
thread:XXX 2001-01-05 [1/6] Notmuch Test Suite; Some messages excluded: single non-excluded match: reply 4 (deleted inbox test unread)
|
||||||
|
thread:XXX 2001-01-05 [1/6] Notmuch Test Suite; No messages excluded: single match: reply 3 (inbox test unread)"
|
||||||
|
|
||||||
|
test_begin_subtest "Search, exclude=false (messages)"
|
||||||
|
output=$(notmuch search --exclude=false --output=messages tag:test | notmuch_search_sanitize)
|
||||||
|
test_expect_equal "$output" "${matching_message_ids[0]}
|
||||||
|
${matching_message_ids[1]}
|
||||||
|
${matching_message_ids[2]}
|
||||||
|
${matching_message_ids[3]}
|
||||||
|
${matching_message_ids[4]}
|
||||||
|
${matching_message_ids[5]}"
|
||||||
|
|
||||||
|
test_begin_subtest "Search, exclude=flag (thread summary)"
|
||||||
|
output=$(notmuch search --exclude=flag tag:test | notmuch_search_sanitize)
|
||||||
|
test_expect_equal "$output" "thread:XXX 2001-01-05 [0/6] Notmuch Test Suite; All messages excluded: single match: reply 2 (deleted inbox test unread)
|
||||||
|
thread:XXX 2001-01-05 [0/6] Notmuch Test Suite; All messages excluded: double match: reply 4 (deleted inbox test unread)
|
||||||
|
thread:XXX 2001-01-05 [0/6] Notmuch Test Suite; Some messages excluded: single excluded match: reply 3 (deleted inbox test unread)
|
||||||
|
thread:XXX 2001-01-05 [1/6] Notmuch Test Suite; Some messages excluded: single non-excluded match: reply 4 (deleted inbox test unread)
|
||||||
|
thread:XXX 2001-01-05 [1/6] Notmuch Test Suite; No messages excluded: single match: reply 3 (inbox test unread)"
|
||||||
|
|
||||||
|
test_begin_subtest "Search, exclude=flag (messages)"
|
||||||
|
output=$(notmuch search --exclude=flag --output=messages tag:test | notmuch_search_sanitize)
|
||||||
|
test_expect_equal "$output" "${matching_message_ids[0]}
|
||||||
|
${matching_message_ids[1]}
|
||||||
|
${matching_message_ids[2]}
|
||||||
|
${matching_message_ids[3]}
|
||||||
|
${matching_message_ids[4]}
|
||||||
|
${matching_message_ids[5]}"
|
||||||
|
|
||||||
|
test_begin_subtest "Search, default exclusion: tag in query (thread summary)"
|
||||||
|
output=$(notmuch search tag:test and tag:deleted | notmuch_search_sanitize)
|
||||||
|
test_expect_equal "$output" "thread:XXX 2001-01-05 [1/6] Notmuch Test Suite; All messages excluded: single match: reply 2 (deleted inbox test unread)
|
||||||
|
thread:XXX 2001-01-05 [2/6] Notmuch Test Suite; All messages excluded: double match: reply 2 (deleted inbox test unread)
|
||||||
|
thread:XXX 2001-01-05 [1/6] Notmuch Test Suite; Some messages excluded: single excluded match: reply 3 (deleted inbox test unread)"
|
||||||
|
|
||||||
|
test_begin_subtest "Search, default exclusion: tag in query (messages)"
|
||||||
|
output=$(notmuch search --output=messages tag:test and tag:deleted | notmuch_search_sanitize)
|
||||||
|
test_expect_equal "$output" "${matching_message_ids[0]}
|
||||||
|
${matching_message_ids[1]}
|
||||||
|
${matching_message_ids[2]}
|
||||||
|
${matching_message_ids[3]}"
|
||||||
|
|
||||||
|
test_begin_subtest "Search, exclude=true: tag in query (thread summary)"
|
||||||
|
output=$(notmuch search --exclude=true tag:test and tag:deleted | notmuch_search_sanitize)
|
||||||
|
test_expect_equal "$output" "thread:XXX 2001-01-05 [1/6] Notmuch Test Suite; All messages excluded: single match: reply 2 (deleted inbox test unread)
|
||||||
|
thread:XXX 2001-01-05 [2/6] Notmuch Test Suite; All messages excluded: double match: reply 2 (deleted inbox test unread)
|
||||||
|
thread:XXX 2001-01-05 [1/6] Notmuch Test Suite; Some messages excluded: single excluded match: reply 3 (deleted inbox test unread)"
|
||||||
|
|
||||||
|
test_begin_subtest "Search, exclude=true: tag in query (messages)"
|
||||||
|
output=$(notmuch search --exclude=true --output=messages tag:test and tag:deleted | notmuch_search_sanitize)
|
||||||
|
test_expect_equal "$output" "${matching_message_ids[0]}
|
||||||
|
${matching_message_ids[1]}
|
||||||
|
${matching_message_ids[2]}
|
||||||
|
${matching_message_ids[3]}"
|
||||||
|
|
||||||
|
test_begin_subtest "Search, exclude=false: tag in query (thread summary)"
|
||||||
|
output=$(notmuch search --exclude=false tag:test and tag:deleted | notmuch_search_sanitize)
|
||||||
|
test_expect_equal "$output" "thread:XXX 2001-01-05 [1/6] Notmuch Test Suite; All messages excluded: single match: reply 2 (deleted inbox test unread)
|
||||||
|
thread:XXX 2001-01-05 [2/6] Notmuch Test Suite; All messages excluded: double match: reply 2 (deleted inbox test unread)
|
||||||
|
thread:XXX 2001-01-05 [1/6] Notmuch Test Suite; Some messages excluded: single excluded match: reply 3 (deleted inbox test unread)"
|
||||||
|
|
||||||
|
test_begin_subtest "Search, exclude=false: tag in query (messages)"
|
||||||
|
output=$(notmuch search --exclude=false --output=messages tag:test and tag:deleted | notmuch_search_sanitize)
|
||||||
|
test_expect_equal "$output" "${matching_message_ids[0]}
|
||||||
|
${matching_message_ids[1]}
|
||||||
|
${matching_message_ids[2]}
|
||||||
|
${matching_message_ids[3]}"
|
||||||
|
|
||||||
|
test_begin_subtest "Search, exclude=flag: tag in query (thread summary)"
|
||||||
|
output=$(notmuch search --exclude=flag tag:test and tag:deleted | notmuch_search_sanitize)
|
||||||
|
test_expect_equal "$output" "thread:XXX 2001-01-05 [1/6] Notmuch Test Suite; All messages excluded: single match: reply 2 (deleted inbox test unread)
|
||||||
|
thread:XXX 2001-01-05 [2/6] Notmuch Test Suite; All messages excluded: double match: reply 2 (deleted inbox test unread)
|
||||||
|
thread:XXX 2001-01-05 [1/6] Notmuch Test Suite; Some messages excluded: single excluded match: reply 3 (deleted inbox test unread)"
|
||||||
|
|
||||||
|
test_begin_subtest "Search, exclude=flag: tag in query (messages)"
|
||||||
|
output=$(notmuch search --exclude=flag --output=messages tag:test and tag:deleted | notmuch_search_sanitize)
|
||||||
|
test_expect_equal "$output" "${matching_message_ids[0]}
|
||||||
|
${matching_message_ids[1]}
|
||||||
|
${matching_message_ids[2]}
|
||||||
|
${matching_message_ids[3]}"
|
||||||
|
|
||||||
|
|
||||||
|
#########################################################
|
||||||
|
# Notmuch count tests
|
||||||
|
|
||||||
|
test_begin_subtest "Count, default exclusion (messages)"
|
||||||
|
output=$(notmuch count tag:test)
|
||||||
|
test_expect_equal "$output" "2"
|
||||||
|
|
||||||
|
test_begin_subtest "Count, default exclusion (threads)"
|
||||||
|
output=$(notmuch count --output=threads tag:test)
|
||||||
|
test_expect_equal "$output" "2"
|
||||||
|
|
||||||
|
test_begin_subtest "Count, exclude=true (messages)"
|
||||||
|
output=$(notmuch count --exclude=true tag:test)
|
||||||
|
test_expect_equal "$output" "2"
|
||||||
|
|
||||||
|
test_begin_subtest "Count, exclude=true (threads)"
|
||||||
|
output=$(notmuch count --output=threads --exclude=true tag:test)
|
||||||
|
test_expect_equal "$output" "2"
|
||||||
|
|
||||||
|
test_begin_subtest "Count, exclude=false (messages)"
|
||||||
|
output=$(notmuch count --exclude=false tag:test)
|
||||||
|
test_expect_equal "$output" "6"
|
||||||
|
|
||||||
|
test_begin_subtest "Count, exclude=false (threads)"
|
||||||
|
output=$(notmuch count --output=threads --exclude=false tag:test)
|
||||||
|
test_expect_equal "$output" "5"
|
||||||
|
|
||||||
|
test_begin_subtest "Count, default exclusion: tag in query (messages)"
|
||||||
|
output=$(notmuch count tag:test and tag:deleted)
|
||||||
|
test_expect_equal "$output" "4"
|
||||||
|
|
||||||
|
test_begin_subtest "Count, default exclusion: tag in query (threads)"
|
||||||
|
output=$(notmuch count --output=threads tag:test and tag:deleted)
|
||||||
|
test_expect_equal "$output" "3"
|
||||||
|
|
||||||
|
test_begin_subtest "Count, exclude=true: tag in query (messages)"
|
||||||
|
output=$(notmuch count --exclude=true tag:test and tag:deleted)
|
||||||
|
test_expect_equal "$output" "4"
|
||||||
|
|
||||||
|
test_begin_subtest "Count, exclude=true: tag in query (threads)"
|
||||||
|
output=$(notmuch count --output=threads --exclude=true tag:test and tag:deleted)
|
||||||
|
test_expect_equal "$output" "3"
|
||||||
|
|
||||||
|
test_begin_subtest "Count, exclude=false: tag in query (messages)"
|
||||||
|
output=$(notmuch count --exclude=false tag:test and tag:deleted)
|
||||||
|
test_expect_equal "$output" "4"
|
||||||
|
|
||||||
|
test_begin_subtest "Count, exclude=false: tag in query (threads)"
|
||||||
|
output=$(notmuch count --output=threads --exclude=false tag:test and tag:deleted)
|
||||||
|
test_expect_equal "$output" "3"
|
||||||
|
|
||||||
|
#############################################################
|
||||||
|
# Show tests
|
||||||
|
|
||||||
|
test_begin_subtest "Show, default exclusion"
|
||||||
|
output=$(notmuch show tag:test | notmuch_show_sanitize_all | egrep "Subject:|message{")
|
||||||
|
test_expect_equal "$output" "message{ id:XXXXX depth:0 match:1 excluded:0 filename:XXXXX
|
||||||
|
Subject: Some messages excluded: single non-excluded match: reply 4
|
||||||
|
message{ id:XXXXX depth:0 match:1 excluded:0 filename:XXXXX
|
||||||
|
Subject: No messages excluded: single match: reply 3"
|
||||||
|
|
||||||
|
test_begin_subtest "Show, default exclusion (entire-thread)"
|
||||||
|
output=$(notmuch show --entire-thread tag:test | notmuch_show_sanitize_all | egrep "Subject:|message{")
|
||||||
|
test_expect_equal "$output" "message{ id:XXXXX depth:0 match:0 excluded:0 filename:XXXXX
|
||||||
|
Subject: Some messages excluded: single non-excluded match: top message
|
||||||
|
message{ id:XXXXX depth:1 match:0 excluded:0 filename:XXXXX
|
||||||
|
Subject: Some messages excluded: single non-excluded match: reply 1
|
||||||
|
message{ id:XXXXX depth:2 match:0 excluded:1 filename:XXXXX
|
||||||
|
Subject: Some messages excluded: single non-excluded match: reply 2
|
||||||
|
message{ id:XXXXX depth:3 match:0 excluded:0 filename:XXXXX
|
||||||
|
Subject: Some messages excluded: single non-excluded match: reply 3
|
||||||
|
message{ id:XXXXX depth:4 match:1 excluded:0 filename:XXXXX
|
||||||
|
Subject: Some messages excluded: single non-excluded match: reply 4
|
||||||
|
message{ id:XXXXX depth:5 match:0 excluded:0 filename:XXXXX
|
||||||
|
Subject: Some messages excluded: single non-excluded match: reply 5
|
||||||
|
message{ id:XXXXX depth:0 match:0 excluded:0 filename:XXXXX
|
||||||
|
Subject: No messages excluded: single match: top message
|
||||||
|
message{ id:XXXXX depth:1 match:0 excluded:0 filename:XXXXX
|
||||||
|
Subject: No messages excluded: single match: reply 1
|
||||||
|
message{ id:XXXXX depth:2 match:0 excluded:0 filename:XXXXX
|
||||||
|
Subject: No messages excluded: single match: reply 2
|
||||||
|
message{ id:XXXXX depth:3 match:1 excluded:0 filename:XXXXX
|
||||||
|
Subject: No messages excluded: single match: reply 3
|
||||||
|
message{ id:XXXXX depth:4 match:0 excluded:0 filename:XXXXX
|
||||||
|
Subject: No messages excluded: single match: reply 4
|
||||||
|
message{ id:XXXXX depth:5 match:0 excluded:0 filename:XXXXX
|
||||||
|
Subject: No messages excluded: single match: reply 5"
|
||||||
|
|
||||||
|
test_begin_subtest "Show, exclude=true"
|
||||||
|
output=$(notmuch show --exclude=true tag:test | notmuch_show_sanitize_all | egrep "Subject:|message{")
|
||||||
|
test_expect_equal "$output" "message{ id:XXXXX depth:0 match:1 excluded:0 filename:XXXXX
|
||||||
|
Subject: Some messages excluded: single non-excluded match: reply 4
|
||||||
|
message{ id:XXXXX depth:0 match:1 excluded:0 filename:XXXXX
|
||||||
|
Subject: No messages excluded: single match: reply 3"
|
||||||
|
|
||||||
|
test_begin_subtest "Show, exclude=true (entire-thread)"
|
||||||
|
output=$(notmuch show --entire-thread --exclude=true tag:test | notmuch_show_sanitize_all | egrep "Subject:|message{")
|
||||||
|
test_expect_equal "$output" "message{ id:XXXXX depth:0 match:0 excluded:0 filename:XXXXX
|
||||||
|
Subject: Some messages excluded: single non-excluded match: top message
|
||||||
|
message{ id:XXXXX depth:1 match:0 excluded:0 filename:XXXXX
|
||||||
|
Subject: Some messages excluded: single non-excluded match: reply 1
|
||||||
|
message{ id:XXXXX depth:2 match:0 excluded:1 filename:XXXXX
|
||||||
|
Subject: Some messages excluded: single non-excluded match: reply 2
|
||||||
|
message{ id:XXXXX depth:3 match:0 excluded:0 filename:XXXXX
|
||||||
|
Subject: Some messages excluded: single non-excluded match: reply 3
|
||||||
|
message{ id:XXXXX depth:4 match:1 excluded:0 filename:XXXXX
|
||||||
|
Subject: Some messages excluded: single non-excluded match: reply 4
|
||||||
|
message{ id:XXXXX depth:5 match:0 excluded:0 filename:XXXXX
|
||||||
|
Subject: Some messages excluded: single non-excluded match: reply 5
|
||||||
|
message{ id:XXXXX depth:0 match:0 excluded:0 filename:XXXXX
|
||||||
|
Subject: No messages excluded: single match: top message
|
||||||
|
message{ id:XXXXX depth:1 match:0 excluded:0 filename:XXXXX
|
||||||
|
Subject: No messages excluded: single match: reply 1
|
||||||
|
message{ id:XXXXX depth:2 match:0 excluded:0 filename:XXXXX
|
||||||
|
Subject: No messages excluded: single match: reply 2
|
||||||
|
message{ id:XXXXX depth:3 match:1 excluded:0 filename:XXXXX
|
||||||
|
Subject: No messages excluded: single match: reply 3
|
||||||
|
message{ id:XXXXX depth:4 match:0 excluded:0 filename:XXXXX
|
||||||
|
Subject: No messages excluded: single match: reply 4
|
||||||
|
message{ id:XXXXX depth:5 match:0 excluded:0 filename:XXXXX
|
||||||
|
Subject: No messages excluded: single match: reply 5"
|
||||||
|
|
||||||
|
test_begin_subtest "Show, exclude=false"
|
||||||
|
output=$(notmuch show --exclude=false tag:test | notmuch_show_sanitize_all | egrep "Subject:|message{")
|
||||||
|
test_expect_equal "$output" "message{ id:XXXXX depth:0 match:1 excluded:1 filename:XXXXX
|
||||||
|
Subject: All messages excluded: single match: reply 2
|
||||||
|
message{ id:XXXXX depth:0 match:1 excluded:1 filename:XXXXX
|
||||||
|
Subject: All messages excluded: double match: reply 2
|
||||||
|
message{ id:XXXXX depth:1 match:1 excluded:1 filename:XXXXX
|
||||||
|
Subject: All messages excluded: double match: reply 4
|
||||||
|
message{ id:XXXXX depth:0 match:1 excluded:1 filename:XXXXX
|
||||||
|
Subject: Some messages excluded: single excluded match: reply 3
|
||||||
|
message{ id:XXXXX depth:0 match:1 excluded:0 filename:XXXXX
|
||||||
|
Subject: Some messages excluded: single non-excluded match: reply 4
|
||||||
|
message{ id:XXXXX depth:0 match:1 excluded:0 filename:XXXXX
|
||||||
|
Subject: No messages excluded: single match: reply 3"
|
||||||
|
|
||||||
|
test_begin_subtest "Show, exclude=false (entire-thread)"
|
||||||
|
output=$(notmuch show --entire-thread --exclude=false tag:test | notmuch_show_sanitize_all | egrep "Subject:|message{")
|
||||||
|
test_expect_equal "$output" "message{ id:XXXXX depth:0 match:0 excluded:1 filename:XXXXX
|
||||||
|
Subject: All messages excluded: single match: top message
|
||||||
|
message{ id:XXXXX depth:1 match:0 excluded:1 filename:XXXXX
|
||||||
|
Subject: All messages excluded: single match: reply 1
|
||||||
|
message{ id:XXXXX depth:2 match:1 excluded:1 filename:XXXXX
|
||||||
|
Subject: All messages excluded: single match: reply 2
|
||||||
|
message{ id:XXXXX depth:3 match:0 excluded:1 filename:XXXXX
|
||||||
|
Subject: All messages excluded: single match: reply 3
|
||||||
|
message{ id:XXXXX depth:4 match:0 excluded:1 filename:XXXXX
|
||||||
|
Subject: All messages excluded: single match: reply 4
|
||||||
|
message{ id:XXXXX depth:5 match:0 excluded:1 filename:XXXXX
|
||||||
|
Subject: All messages excluded: single match: reply 5
|
||||||
|
message{ id:XXXXX depth:0 match:0 excluded:1 filename:XXXXX
|
||||||
|
Subject: All messages excluded: double match: top message
|
||||||
|
message{ id:XXXXX depth:1 match:0 excluded:1 filename:XXXXX
|
||||||
|
Subject: All messages excluded: double match: reply 1
|
||||||
|
message{ id:XXXXX depth:2 match:1 excluded:1 filename:XXXXX
|
||||||
|
Subject: All messages excluded: double match: reply 2
|
||||||
|
message{ id:XXXXX depth:3 match:0 excluded:1 filename:XXXXX
|
||||||
|
Subject: All messages excluded: double match: reply 3
|
||||||
|
message{ id:XXXXX depth:4 match:1 excluded:1 filename:XXXXX
|
||||||
|
Subject: All messages excluded: double match: reply 4
|
||||||
|
message{ id:XXXXX depth:5 match:0 excluded:1 filename:XXXXX
|
||||||
|
Subject: All messages excluded: double match: reply 5
|
||||||
|
message{ id:XXXXX depth:0 match:0 excluded:0 filename:XXXXX
|
||||||
|
Subject: Some messages excluded: single excluded match: top message
|
||||||
|
message{ id:XXXXX depth:1 match:0 excluded:0 filename:XXXXX
|
||||||
|
Subject: Some messages excluded: single excluded match: reply 1
|
||||||
|
message{ id:XXXXX depth:2 match:0 excluded:0 filename:XXXXX
|
||||||
|
Subject: Some messages excluded: single excluded match: reply 2
|
||||||
|
message{ id:XXXXX depth:3 match:1 excluded:1 filename:XXXXX
|
||||||
|
Subject: Some messages excluded: single excluded match: reply 3
|
||||||
|
message{ id:XXXXX depth:4 match:0 excluded:0 filename:XXXXX
|
||||||
|
Subject: Some messages excluded: single excluded match: reply 4
|
||||||
|
message{ id:XXXXX depth:5 match:0 excluded:0 filename:XXXXX
|
||||||
|
Subject: Some messages excluded: single excluded match: reply 5
|
||||||
|
message{ id:XXXXX depth:0 match:0 excluded:0 filename:XXXXX
|
||||||
|
Subject: Some messages excluded: single non-excluded match: top message
|
||||||
|
message{ id:XXXXX depth:1 match:0 excluded:0 filename:XXXXX
|
||||||
|
Subject: Some messages excluded: single non-excluded match: reply 1
|
||||||
|
message{ id:XXXXX depth:2 match:0 excluded:1 filename:XXXXX
|
||||||
|
Subject: Some messages excluded: single non-excluded match: reply 2
|
||||||
|
message{ id:XXXXX depth:3 match:0 excluded:0 filename:XXXXX
|
||||||
|
Subject: Some messages excluded: single non-excluded match: reply 3
|
||||||
|
message{ id:XXXXX depth:4 match:1 excluded:0 filename:XXXXX
|
||||||
|
Subject: Some messages excluded: single non-excluded match: reply 4
|
||||||
|
message{ id:XXXXX depth:5 match:0 excluded:0 filename:XXXXX
|
||||||
|
Subject: Some messages excluded: single non-excluded match: reply 5
|
||||||
|
message{ id:XXXXX depth:0 match:0 excluded:0 filename:XXXXX
|
||||||
|
Subject: No messages excluded: single match: top message
|
||||||
|
message{ id:XXXXX depth:1 match:0 excluded:0 filename:XXXXX
|
||||||
|
Subject: No messages excluded: single match: reply 1
|
||||||
|
message{ id:XXXXX depth:2 match:0 excluded:0 filename:XXXXX
|
||||||
|
Subject: No messages excluded: single match: reply 2
|
||||||
|
message{ id:XXXXX depth:3 match:1 excluded:0 filename:XXXXX
|
||||||
|
Subject: No messages excluded: single match: reply 3
|
||||||
|
message{ id:XXXXX depth:4 match:0 excluded:0 filename:XXXXX
|
||||||
|
Subject: No messages excluded: single match: reply 4
|
||||||
|
message{ id:XXXXX depth:5 match:0 excluded:0 filename:XXXXX
|
||||||
|
Subject: No messages excluded: single match: reply 5"
|
||||||
|
|
||||||
|
|
||||||
|
test_done
|
|
@ -27,6 +27,7 @@ TESTS="
|
||||||
search-position-overlap-bug
|
search-position-overlap-bug
|
||||||
search-insufficient-from-quoting
|
search-insufficient-from-quoting
|
||||||
search-limiting
|
search-limiting
|
||||||
|
excludes
|
||||||
tagging
|
tagging
|
||||||
json
|
json
|
||||||
multipart
|
multipart
|
||||||
|
|
48
test/search
48
test/search
|
@ -129,52 +129,4 @@ add_message '[subject]="utf8-message-body-subject"' '[date]="Sat, 01 Jan 2000 12
|
||||||
output=$(notmuch search "bödý" | notmuch_search_sanitize)
|
output=$(notmuch search "bödý" | notmuch_search_sanitize)
|
||||||
test_expect_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; utf8-message-body-subject (inbox unread)"
|
test_expect_equal "$output" "thread:XXX 2000-01-01 [1/1] Notmuch Test Suite; utf8-message-body-subject (inbox unread)"
|
||||||
|
|
||||||
test_begin_subtest "Exclude \"deleted\" messages from search"
|
|
||||||
notmuch config set search.exclude_tags deleted
|
|
||||||
generate_message '[subject]="Not deleted"'
|
|
||||||
not_deleted_id=$gen_msg_id
|
|
||||||
generate_message '[subject]="Deleted"'
|
|
||||||
notmuch new > /dev/null
|
|
||||||
notmuch tag +deleted id:$gen_msg_id
|
|
||||||
deleted_id=$gen_msg_id
|
|
||||||
output=$(notmuch search subject:deleted | notmuch_search_sanitize)
|
|
||||||
test_expect_equal "$output" "thread:XXX 2001-01-05 [1/1] Notmuch Test Suite; Not deleted (inbox unread)
|
|
||||||
thread:XXX 2001-01-05 [0/1] Notmuch Test Suite; Deleted (deleted inbox unread)"
|
|
||||||
|
|
||||||
test_begin_subtest "Exclude \"deleted\" messages from message search"
|
|
||||||
output=$(notmuch search --output=messages subject:deleted | notmuch_search_sanitize)
|
|
||||||
test_expect_equal "$output" "id:$not_deleted_id"
|
|
||||||
|
|
||||||
test_begin_subtest "Exclude \"deleted\" messages from message search (no-exclude)"
|
|
||||||
output=$(notmuch search --no-exclude --output=messages subject:deleted | notmuch_search_sanitize)
|
|
||||||
test_expect_equal "$output" "id:$not_deleted_id
|
|
||||||
id:$deleted_id"
|
|
||||||
|
|
||||||
test_begin_subtest "Exclude \"deleted\" messages from message search (non-existent exclude-tag)"
|
|
||||||
notmuch config set search.exclude_tags deleted non_existent_tag
|
|
||||||
output=$(notmuch search --output=messages subject:deleted | notmuch_search_sanitize)
|
|
||||||
test_expect_equal "$output" "id:$not_deleted_id"
|
|
||||||
notmuch config set search.exclude_tags deleted
|
|
||||||
|
|
||||||
test_begin_subtest "Exclude \"deleted\" messages from search, overridden"
|
|
||||||
output=$(notmuch search subject:deleted and tag:deleted | notmuch_search_sanitize)
|
|
||||||
test_expect_equal "$output" "thread:XXX 2001-01-05 [1/1] Notmuch Test Suite; Deleted (deleted inbox unread)"
|
|
||||||
|
|
||||||
test_begin_subtest "Exclude \"deleted\" messages from threads"
|
|
||||||
add_message '[subject]="Not deleted reply"' '[in-reply-to]="<$gen_msg_id>"'
|
|
||||||
output=$(notmuch search subject:deleted | notmuch_search_sanitize)
|
|
||||||
test_expect_equal "$output" "thread:XXX 2001-01-05 [1/1] Notmuch Test Suite; Not deleted (inbox unread)
|
|
||||||
thread:XXX 2001-01-05 [1/2] Notmuch Test Suite; Not deleted reply (deleted inbox unread)"
|
|
||||||
|
|
||||||
test_begin_subtest "Don't exclude \"deleted\" messages when --no-exclude specified"
|
|
||||||
output=$(notmuch search --no-exclude subject:deleted | notmuch_search_sanitize)
|
|
||||||
test_expect_equal "$output" "thread:XXX 2001-01-05 [1/1] Notmuch Test Suite; Not deleted (inbox unread)
|
|
||||||
thread:XXX 2001-01-05 [2/2] Notmuch Test Suite; Deleted (deleted inbox unread)"
|
|
||||||
|
|
||||||
test_begin_subtest "Don't exclude \"deleted\" messages from search if not configured"
|
|
||||||
notmuch config set search.exclude_tags
|
|
||||||
output=$(notmuch search subject:deleted | notmuch_search_sanitize)
|
|
||||||
test_expect_equal "$output" "thread:XXX 2001-01-05 [1/1] Notmuch Test Suite; Not deleted (inbox unread)
|
|
||||||
thread:XXX 2001-01-05 [2/2] Notmuch Test Suite; Deleted (deleted inbox unread)"
|
|
||||||
|
|
||||||
test_done
|
test_done
|
||||||
|
|
Loading…
Reference in a new issue