[PATCH v2] test/emacs: test for functions in notmuch-search-result-format.

Subject: [PATCH v2] test/emacs: test for functions in notmuch-search-result-format.

Date: Mon, 30 Aug 2021 12:49:06 -0700

To: David Bremner, David Edmondson, notmuch@notmuchmail.org

Cc:

From: David Bremner


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 <stdint.h> 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 <stdint.h> 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
-- 
2.33.0
_______________________________________________
notmuch mailing list -- notmuch@notmuchmail.org
To unsubscribe send an email to notmuch-leave@notmuchmail.org

Thread: