]> git.notmuchmail.org Git - notmuch/blobdiff - test/T060-count.sh
lib: query make exclude handling non-destructive
[notmuch] / test / T060-count.sh
index 0ac8314087cd9c985f97b79170a50d37d5657c72..4751440e94a1acf7ef552fd0503be3d4264dbaf7 100755 (executable)
@@ -103,6 +103,8 @@ restore_database
 
 cat <<EOF > count-files.gdb
 set breakpoint pending on
+set logging file count-files-gdb.log
+set logging on
 break count_files
 commands
 shell cp /dev/null ${MAIL_DIR}/.notmuch/xapian/postlist.${db_ending}
@@ -113,7 +115,7 @@ EOF
 
 backup_database
 test_begin_subtest "error message from query_search_messages"
-gdb --batch-silent --return-child-result -x count-files.gdb \
+${TEST_GDB} --batch-silent --return-child-result -x count-files.gdb \
     --args notmuch count --output=files '*' 2>OUTPUT 1>/dev/null
 cat <<EOF > EXPECTED
 notmuch count: A Xapian exception occurred
@@ -124,4 +126,31 @@ sed 's/^\(A Xapian exception [^:]*\):.*$/\1/' < OUTPUT > OUTPUT.clean
 test_expect_equal_file EXPECTED OUTPUT.clean
 restore_database
 
+test_begin_subtest "count library function is non-destructive"
+cat<<EOF > EXPECTED
+1: 52 messages
+2: 52 messages
+Exclude 'spam'
+3: 52 messages
+4: 52 messages
+EOF
+test_python <<EOF
+import sys
+import notmuch
+
+query_string = 'tag:inbox or tag:spam'
+tag_string = 'spam'
+
+database = notmuch.Database(mode=notmuch.Database.MODE.READ_ONLY)
+query = notmuch.Query(database, query_string)
+
+print("1: {} messages".format(query.count_messages()))
+print("2: {} messages".format(query.count_messages()))
+print("Exclude '{}'".format(tag_string))
+query.exclude_tag(tag_string)
+print("3: {} messages".format(query.count_messages()))
+print("4: {} messages".format(query.count_messages()))
+EOF
+test_expect_equal_file EXPECTED OUTPUT
+
 test_done