From dc8262bd336f1c406e5705ec8cb5029f1bacd524 Mon Sep 17 00:00:00 2001 From: David Bremner Date: Mon, 30 Aug 2021 12:49:06 -0700 Subject: [PATCH] test/emacs: test for functions in notmuch-search-result-format. Based on the commit message in id:20210221151902.2301690-3-dme@dme.org Add the function notmuch-test-result-flags to test-lib.el to avoid repeating it in 3 T*.sh files. --- test/T310-emacs.sh | 14 +++++ test/T460-emacs-tree.sh | 15 ++++++ test/T465-emacs-unthreaded.sh | 17 ++++++ .../result-format-function | 53 +++++++++++++++++++ .../result-format-function | 53 +++++++++++++++++++ .../search-result-format-function | 25 +++++++++ test/test-lib.el | 15 ++++++ 7 files changed, 192 insertions(+) create mode 100644 test/emacs-tree.expected-output/result-format-function create mode 100644 test/emacs-unthreaded.expected-output/result-format-function create mode 100644 test/emacs.expected-output/search-result-format-function diff --git a/test/T310-emacs.sh b/test/T310-emacs.sh index d69d94a3..6c1e8979 100755 --- a/test/T310-emacs.sh +++ b/test/T310-emacs.sh @@ -41,6 +41,20 @@ test_emacs '(notmuch-search "tag:inbox") (test-output)' test_expect_equal_file $EXPECTED/notmuch-search-tag-inbox OUTPUT +test_begin_subtest "Functions in search-result-format" +test_emacs '(let + ((notmuch-search-result-format + (quote ((notmuch-test-result-flags . "%s ") + ("date" . "%12s ") + ("count" . "%9s ") + ("authors" . "%-30s ") + ("subject" . "%s ") + ("tags" . "(%s)"))))) + (notmuch-search "tag:inbox") + (notmuch-test-wait) + (test-output))' +test_expect_equal_file $EXPECTED/search-result-format-function OUTPUT + test_begin_subtest "Incremental parsing of search results" test_emacs "(cl-letf* (((symbol-function 'orig) (symbol-function 'notmuch-search-process-filter)) diff --git a/test/T460-emacs-tree.sh b/test/T460-emacs-tree.sh index 405d7ee7..946583d9 100755 --- a/test/T460-emacs-tree.sh +++ b/test/T460-emacs-tree.sh @@ -179,4 +179,19 @@ output=$(test_emacs '(notmuch-tree "tag:inbox") (notmuch-show-stash-message-id)') test_expect_equal "$output" "\"Stashed: id:1258493565-13508-1-git-send-email-keithp@keithp.com\"" +test_begin_subtest "Functions in tree-result-format" +test_emacs ' +(let + ((notmuch-tree-result-format + (quote (("date" . "%12s ") + ("authors" . "%-20s") + ((("tree" . "%s") + ("subject" . "%s")) . " %-54s ") + (notmuch-test-result-flags . "(%s)"))))) + (notmuch-tree "tag:inbox") + (notmuch-test-wait) + (test-output)) +' +test_expect_equal_file $EXPECTED/result-format-function OUTPUT + test_done diff --git a/test/T465-emacs-unthreaded.sh b/test/T465-emacs-unthreaded.sh index f9a09426..1f386bf3 100755 --- a/test/T465-emacs-unthreaded.sh +++ b/test/T465-emacs-unthreaded.sh @@ -6,6 +6,8 @@ test_description="emacs unthreaded interface" test_require_emacs +EXPECTED=$NOTMUCH_SRCDIR/test/emacs-unthreaded.expected-output + generate_message "[id]=large-thread-1" '[subject]="large thread"' printf " 2001-01-05 Notmuch Test Suite large thread%43s(inbox unread)\n" >> EXPECTED.unthreaded @@ -34,4 +36,19 @@ output=$(test_emacs '(let ((max-lisp-eval-depth 10)) "SUCCESS")' ) test_expect_equal "$output" '"SUCCESS"' +add_email_corpus +test_begin_subtest "Functions in unthreaded-result-format" +test_emacs ' +(let + ((notmuch-unthreaded-result-format + (quote (("date" . "%12s ") + ("authors" . "%-20s") + ("subject" . "%-54s") + (notmuch-test-result-flags . "(%s)"))))) + (notmuch-unthreaded "tag:inbox") + (notmuch-test-wait) + (test-output)) +' +test_expect_equal_file $EXPECTED/result-format-function OUTPUT + test_done diff --git a/test/emacs-tree.expected-output/result-format-function b/test/emacs-tree.expected-output/result-format-function new file mode 100644 index 00000000..7eb24696 --- /dev/null +++ b/test/emacs-tree.expected-output/result-format-function @@ -0,0 +1,53 @@ + 2010-12-29 François Boulogne ─►[aur-general] Guidelines: cp, mkdir vs install ( ui) + 2010-12-16 Olivier Berger ─►Essai accentué ( ui) + 2009-11-18 Chris Wilson ─►[notmuch] [PATCH 1/2] Makefile: evaluate pkg-config once ( ui) + 2009-11-18 Alex Botero-Lowry ┬►[notmuch] [PATCH] Error out if no query is supplied to search instead of going into an infinite loop (& ui) + 2009-11-18 Carl Worth ╰─►[notmuch] [PATCH] Error out if no query is supplied to search instead of going into an infinite loop ( ui) + 2009-11-17 Ingmar Vanhassel ┬►[notmuch] [PATCH] Typsos ( ui) + 2009-11-18 Carl Worth ╰─► ... ( ui) + 2009-11-17 Adrian Perez de Cast ┬►[notmuch] Introducing myself ( =ui) + 2009-11-18 Keith Packard ├─► ... ( ui) + 2009-11-18 Carl Worth ╰─► ... ( ui) + 2009-11-17 Israel Herraiz ┬►[notmuch] New to the list ( ui) + 2009-11-18 Keith Packard ├─► ... ( ui) + 2009-11-18 Carl Worth ╰─► ... ( ui) + 2009-11-17 Jan Janak ┬►[notmuch] What a great idea! ( ui) + 2009-11-17 Jan Janak ├─► ... ( ui) + 2009-11-18 Carl Worth ╰─► ... ( ui) + 2009-11-17 Jan Janak ┬►[notmuch] [PATCH] Older versions of install do not support -C. ( ui) + 2009-11-18 Carl Worth ╰─► ... ( ui) + 2009-11-17 Aron Griffis ┬►[notmuch] archive ( ui) + 2009-11-18 Keith Packard ╰┬► ... ( ui) + 2009-11-18 Carl Worth ╰─► ... ( ui) + 2009-11-17 Keith Packard ┬►[notmuch] [PATCH] Make notmuch-show 'X' (and 'x') commands remove inbox (and unread) tags ( ui) + 2009-11-18 Carl Worth ╰─►[notmuch] [PATCH] Make notmuch-show 'X' (and 'x') commands remove inbox (and unread) tags ( ui) + 2009-11-17 Lars Kellogg-Stedman ┬►[notmuch] Working with Maildir storage? ( = i) + 2009-11-17 Mikhail Gusarov ├┬► ... ( =ui) + 2009-11-17 Lars Kellogg-Stedman │╰┬► ... ( =ui) + 2009-11-17 Mikhail Gusarov │ ├─► ... ( ui) + 2009-11-17 Keith Packard │ ╰┬► ... ( ui) + 2009-11-18 Lars Kellogg-Stedman │ ╰─► ... ( =ui) + 2009-11-18 Carl Worth ╰─► ... ( ui) + 2009-11-17 Mikhail Gusarov ┬►[notmuch] [PATCH 1/2] Close message file after parsing message headers ( i) + 2009-11-17 Mikhail Gusarov ├─►[notmuch] [PATCH 2/2] Include to get uint32_t in C++ file with gcc 4.4 ( ui) + 2009-11-17 Carl Worth ╰┬►[notmuch] [PATCH 1/2] Close message file after parsing message headers ( ui) + 2009-11-17 Keith Packard ╰┬► ... ( ui) + 2009-11-18 Carl Worth ╰─► ... ( ui) + 2009-11-18 Keith Packard ┬►[notmuch] [PATCH] Create a default notmuch-show-hook that highlights URLs and uses word-wrap ( ui) + 2009-11-18 Alexander Botero-Low ╰─►[notmuch] [PATCH] Create a default notmuch-show-hook that highlights URLs and uses word-wrap ( ui) + 2009-11-18 Alexander Botero-Low ─►[notmuch] request for pull ( ui) + 2009-11-18 Jjgod Jiang ┬►[notmuch] Mac OS X/Darwin compatibility issues ( ui) + 2009-11-18 Alexander Botero-Low ╰┬► ... ( ui) + 2009-11-18 Jjgod Jiang ╰┬► ... ( ui) + 2009-11-18 Alexander Botero-Low ╰─► ... ( ui) + 2009-11-18 Rolland Santimano ─►[notmuch] Link to mailing list archives ? ( ui) + 2009-11-18 Jan Janak ─►[notmuch] [PATCH] notmuch new: Support for conversion of spool subdirectories into tags ( ui) + 2009-11-18 Stewart Smith ─►[notmuch] [PATCH] count_files: sort directory in inode order before statting ( ui) + 2009-11-18 Stewart Smith ─►[notmuch] [PATCH 2/2] Read mail directory in inode number order ( ui) + 2009-11-18 Stewart Smith ─►[notmuch] [PATCH] Fix linking with gcc to use g++ to link in C++ libs. ( ui) + 2009-11-18 Lars Kellogg-Stedman ┬►[notmuch] "notmuch help" outputs to stderr? (&=ui) + 2009-11-18 Lars Kellogg-Stedman ╰─► ... (&=ui) + 2009-11-17 Mikhail Gusarov ─►[notmuch] [PATCH] Handle rename of message file ( ui) + 2009-11-17 Alex Botero-Lowry ┬►[notmuch] preliminary FreeBSD support (& ui) + 2009-11-17 Carl Worth ╰─► ... ( ui) +End of search results. diff --git a/test/emacs-unthreaded.expected-output/result-format-function b/test/emacs-unthreaded.expected-output/result-format-function new file mode 100644 index 00000000..bcb10b96 --- /dev/null +++ b/test/emacs-unthreaded.expected-output/result-format-function @@ -0,0 +1,53 @@ + 2010-12-29 François Boulogne [aur-general] Guidelines: cp, mkdir vs install ( ui) + 2010-12-16 Olivier Berger Essai accentué ( ui) + 2009-11-18 Chris Wilson [notmuch] [PATCH 1/2] Makefile: evaluate pkg-config once( ui) + 2009-11-18 Carl Worth [notmuch] [PATCH] Error out if no query is supplied to search instead of going into an infinite loop( ui) + 2009-11-18 Carl Worth [notmuch] [PATCH] Typsos ( ui) + 2009-11-18 Carl Worth [notmuch] Introducing myself ( ui) + 2009-11-18 Carl Worth [notmuch] New to the list ( ui) + 2009-11-18 Carl Worth [notmuch] What a great idea! ( ui) + 2009-11-18 Carl Worth [notmuch] [PATCH] Older versions of install do not support -C.( ui) + 2009-11-18 Carl Worth [notmuch] archive ( ui) + 2009-11-18 Carl Worth [notmuch] [PATCH] Make notmuch-show 'X' (and 'x') commands remove inbox (and unread) tags( ui) + 2009-11-18 Carl Worth [notmuch] Working with Maildir storage? ( ui) + 2009-11-18 Carl Worth [notmuch] [PATCH 1/2] Close message file after parsing message headers( ui) + 2009-11-18 Alexander Botero-Low[notmuch] [PATCH] Create a default notmuch-show-hook that highlights URLs and uses word-wrap( ui) + 2009-11-18 Keith Packard [notmuch] [PATCH] Create a default notmuch-show-hook that highlights URLs and uses word-wrap( ui) + 2009-11-18 Alexander Botero-Low[notmuch] request for pull ( ui) + 2009-11-18 Alexander Botero-Low[notmuch] Mac OS X/Darwin compatibility issues ( ui) + 2009-11-18 Jjgod Jiang [notmuch] Mac OS X/Darwin compatibility issues ( ui) + 2009-11-18 Alexander Botero-Low[notmuch] Mac OS X/Darwin compatibility issues ( ui) + 2009-11-18 Rolland Santimano [notmuch] Link to mailing list archives ? ( ui) + 2009-11-18 Jan Janak [notmuch] [PATCH] notmuch new: Support for conversion of spool subdirectories into tags( ui) + 2009-11-18 Jjgod Jiang [notmuch] Mac OS X/Darwin compatibility issues ( ui) + 2009-11-18 Stewart Smith [notmuch] [PATCH] count_files: sort directory in inode order before statting( ui) + 2009-11-18 Keith Packard [notmuch] archive ( ui) + 2009-11-18 Keith Packard [notmuch] Introducing myself ( ui) + 2009-11-18 Keith Packard [notmuch] New to the list ( ui) + 2009-11-18 Stewart Smith [notmuch] [PATCH 2/2] Read mail directory in inode number order( ui) + 2009-11-18 Stewart Smith [notmuch] [PATCH] Fix linking with gcc to use g++ to link in C++ libs.( ui) + 2009-11-18 Lars Kellogg-Stedman[notmuch] "notmuch help" outputs to stderr? (&=ui) + 2009-11-18 Lars Kellogg-Stedman[notmuch] "notmuch help" outputs to stderr? (&=ui) + 2009-11-18 Lars Kellogg-Stedman[notmuch] Working with Maildir storage? ( =ui) + 2009-11-18 Alex Botero-Lowry [notmuch] [PATCH] Error out if no query is supplied to search instead of going into an infinite loop(& ui) + 2009-11-17 Ingmar Vanhassel [notmuch] [PATCH] Typsos ( ui) + 2009-11-17 Aron Griffis [notmuch] archive ( ui) + 2009-11-17 Adrian Perez de Cast[notmuch] Introducing myself ( =ui) + 2009-11-17 Israel Herraiz [notmuch] New to the list ( ui) + 2009-11-17 Jan Janak [notmuch] What a great idea! ( ui) + 2009-11-17 Jan Janak [notmuch] What a great idea! ( ui) + 2009-11-17 Jan Janak [notmuch] [PATCH] Older versions of install do not support -C.( ui) + 2009-11-17 Keith Packard [notmuch] [PATCH] Make notmuch-show 'X' (and 'x') commands remove inbox (and unread) tags( ui) + 2009-11-17 Keith Packard [notmuch] Working with Maildir storage? ( ui) + 2009-11-17 Keith Packard [notmuch] [PATCH 1/2] Close message file after parsing message headers( ui) + 2009-11-17 Mikhail Gusarov [notmuch] [PATCH] Handle rename of message file ( ui) + 2009-11-17 Mikhail Gusarov [notmuch] Working with Maildir storage? ( ui) + 2009-11-17 Lars Kellogg-Stedman[notmuch] Working with Maildir storage? ( =ui) + 2009-11-17 Carl Worth [notmuch] preliminary FreeBSD support ( ui) + 2009-11-17 Alex Botero-Lowry [notmuch] preliminary FreeBSD support (& ui) + 2009-11-17 Mikhail Gusarov [notmuch] Working with Maildir storage? ( =ui) + 2009-11-17 Lars Kellogg-Stedman[notmuch] Working with Maildir storage? ( =ui) + 2009-11-17 Carl Worth [notmuch] [PATCH 1/2] Close message file after parsing message headers( ui) + 2009-11-17 Mikhail Gusarov [notmuch] [PATCH 2/2] Include to get uint32_t in C++ file with gcc 4.4( ui) + 2009-11-17 Mikhail Gusarov [notmuch] [PATCH 1/2] Close message file after parsing message headers( ui) +End of search results. diff --git a/test/emacs.expected-output/search-result-format-function b/test/emacs.expected-output/search-result-format-function new file mode 100644 index 00000000..08b4bee7 --- /dev/null +++ b/test/emacs.expected-output/search-result-format-function @@ -0,0 +1,25 @@ + ui 2010-12-29 [1/1] François Boulogne [aur-general] Guidelines: cp, mkdir vs install (inbox unread) + ui 2010-12-16 [1/1] Olivier Berger Essai accentué (inbox unread) + ui 2009-11-18 [1/1] Chris Wilson [notmuch] [PATCH 1/2] Makefile: evaluate pkg-config once (inbox unread) +& ui 2009-11-18 [2/2] Alex Botero-Lowry, Carl Worth [notmuch] [PATCH] Error out if no query is supplied to search instead of going into an infinite loop (attachment inbox unread) + ui 2009-11-18 [2/2] Ingmar Vanhassel, Carl Worth [notmuch] [PATCH] Typsos (inbox unread) + =ui 2009-11-18 [3/3] Adrian Perez de Castro, Keith Packard, Carl Worth [notmuch] Introducing myself (inbox signed unread) + ui 2009-11-18 [3/3] Israel Herraiz, Keith Packard, Carl Worth [notmuch] New to the list (inbox unread) + ui 2009-11-18 [3/3] Jan Janak, Carl Worth [notmuch] What a great idea! (inbox unread) + ui 2009-11-18 [2/2] Jan Janak, Carl Worth [notmuch] [PATCH] Older versions of install do not support -C. (inbox unread) + ui 2009-11-18 [3/3] Aron Griffis, Keith Packard, Carl Worth [notmuch] archive (inbox unread) + ui 2009-11-18 [2/2] Keith Packard, Carl Worth [notmuch] [PATCH] Make notmuch-show 'X' (and 'x') commands remove inbox (and unread) tags (inbox unread) + =ui 2009-11-18 [7/7] Lars Kellogg-Stedman, Mikhail Gusarov, Keith Packard, Carl Worth [notmuch] Working with Maildir storage? (inbox signed unread) + ui 2009-11-18 [5/5] Mikhail Gusarov, Carl Worth, Keith Packard [notmuch] [PATCH 1/2] Close message file after parsing message headers (inbox unread) + ui 2009-11-18 [2/2] Keith Packard, Alexander Botero-Lowry [notmuch] [PATCH] Create a default notmuch-show-hook that highlights URLs and uses word-wrap (inbox unread) + ui 2009-11-18 [1/1] Alexander Botero-Lowry [notmuch] request for pull (inbox unread) + ui 2009-11-18 [4/4] Jjgod Jiang, Alexander Botero-Lowry [notmuch] Mac OS X/Darwin compatibility issues (inbox unread) + ui 2009-11-18 [1/1] Rolland Santimano [notmuch] Link to mailing list archives ? (inbox unread) + ui 2009-11-18 [1/1] Jan Janak [notmuch] [PATCH] notmuch new: Support for conversion of spool subdirectories into tags (inbox unread) + ui 2009-11-18 [1/1] Stewart Smith [notmuch] [PATCH] count_files: sort directory in inode order before statting (inbox unread) + ui 2009-11-18 [1/1] Stewart Smith [notmuch] [PATCH 2/2] Read mail directory in inode number order (inbox unread) + ui 2009-11-18 [1/1] Stewart Smith [notmuch] [PATCH] Fix linking with gcc to use g++ to link in C++ libs. (inbox unread) +&=ui 2009-11-18 [2/2] Lars Kellogg-Stedman [notmuch] "notmuch help" outputs to stderr? (attachment inbox signed unread) + ui 2009-11-17 [1/1] Mikhail Gusarov [notmuch] [PATCH] Handle rename of message file (inbox unread) +& ui 2009-11-17 [2/2] Alex Botero-Lowry, Carl Worth [notmuch] preliminary FreeBSD support (attachment inbox unread) +End of search results. diff --git a/test/test-lib.el b/test/test-lib.el index 32d53736..c840bc98 100644 --- a/test/test-lib.el +++ b/test/test-lib.el @@ -159,6 +159,21 @@ running, quit if it terminated." (lambda (x) `(prog1 ,x (notmuch-post-command))) body))) +;; For testing functions in +;; notmuch-{search,tree,unsorted}-result-format +(defun notmuch-test-result-flags (format-string result) + (let ((tags-to-letters (quote (("attachment" . "&") + ("signed" . "=") + ("unread" . "u") + ("inbox" . "i")))) + (tags (plist-get result :tags))) + (format format-string + (mapconcat (lambda (t2l) + (if (member (car t2l) tags) + (cdr t2l) + " ")) + tags-to-letters "")))) + ;; For historical reasons, we hide deleted tags by default in the test ;; suite (setq notmuch-tag-deleted-formats