emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/hyperbole cd2bc612f5 2/6: hypb-ert.el - Fix for Emacs v


From: ELPA Syncer
Subject: [elpa] externals/hyperbole cd2bc612f5 2/6: hypb-ert.el - Fix for Emacs versions with single arg 'ert' def
Date: Mon, 17 Jul 2023 09:58:38 -0400 (EDT)

branch: externals/hyperbole
commit cd2bc612f5e96f1b3adcacd0a7eb98c97c45117d
Author: Bob Weiner <rsw@gnu.org>
Commit: Bob Weiner <rsw@gnu.org>

    hypb-ert.el - Fix for Emacs versions with single arg 'ert' def
---
 ChangeLog   |  3 +++
 hypb-ert.el | 29 ++++++++++++++++++-----------
 2 files changed, 21 insertions(+), 11 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index d9057b700c..82557466c6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -2,6 +2,9 @@
 
 * hypb-ert.el (hypb-ert-*): Change all calls of 'ert' to disable ert's messages
     so that any test's message is displayed after an hypb-ert test case run.
+              (hypb-ert): Change 'ert' calls to use 'hypb-ert' and centralize
+    'message' function override when possible to deal with different 'ert'
+    calling conventions in different Emacs versions.
 
 * hbut.el (ibut:operate): Update doc of each state.
 
diff --git a/hypb-ert.el b/hypb-ert.el
index d3c0fb58a4..77acf37229 100644
--- a/hypb-ert.el
+++ b/hypb-ert.el
@@ -3,7 +3,7 @@
 ;; Author:       Mats Lidell <matsl@gnu.org> and Bob Weiner <rsw@gnu.org>
 ;;
 ;; Orig-Date:    31-Mar-21 at 21:11:00
-;; Last-Mod:      8-Jul-23 at 22:22:22 by Bob Weiner
+;; Last-Mod:      9-Jul-23 at 11:59:05 by Bob Weiner
 ;;
 ;; SPDX-License-Identifier: GPL-3.0-or-later
 ;;
@@ -29,20 +29,32 @@
 
 ;;; Code:
 
-(mapc #'require '(lisp-mode hload-path ert hbut hargs))
+(mapc #'require '(lisp-mode hload-path ert hact hbut hargs))
+
+(defun hypb-ert-message-function (_msg-pat &rest _args)
+  "Ignore messages ert outputs so can display messages from tests run."
+  ;; (identity (apply #'format msg-pat args)))))))
+  nil)
+
+(defun hypb-ert (selector)
+  (if (memq 'message-fn (actype:params #'ert-run-tests-interactively))
+      ;; Suppress ert messages so last test case message stays in the 
minibuffer;
+      ;; 3rd arg message-fn available only in Emacs 27 and earlier
+      (ert selector nil #'hypb-ert-message-function)
+    (ert selector)))
 
 (defun hypb-ert-run-test (test-name)
   "Run the specified TEST-NAME ert test."
   (hypb-ert-require-libraries)
   (let ((test-sym (intern-soft test-name)))
     (if test-sym
-       (ert test-sym nil #'hypb-ert-message-function)
+       (hypb-ert test-sym)
       (user-error "Invalid test name: %s" test-name))))
 
 (defun hypb-ert-run-tests (test-selector)
   "Run the specified TEST-SELECTOR defined ert test."
   (hypb-ert-require-libraries)
-  (ert (regexp-quote test-selector) nil #'hypb-ert-message-function))
+  (hypb-ert (regexp-quote test-selector)))
 
 (defun hypb-ert-get-require-symbols ()
   "Return the list of test Lisp library symbols to require."
@@ -60,7 +72,7 @@
   "Run every ert test."
   (interactive)
   (hypb-ert-require-libraries)
-  (ert t nil #'hypb-ert-message-function))
+  (hypb-ert t))
 
 ;; The following expression is true only when an ert-deftest has been
 ;; instrumented by edebug:
@@ -94,7 +106,7 @@ test when it is run."
     (when (and test-sym (ert-test-boundp test-sym))
       (when (and buffer-file-name (string-prefix-p hyperb:dir 
buffer-file-name))
        (hypb-ert-require-libraries))
-      (ert test-sym nil #'hypb-ert-message-function))))
+      (hypb-ert test-sym))))
 
 (defib hyperbole-run-test-definition ()
   "If on the name in the first line of an ert test def, eval and run the test.
@@ -109,10 +121,5 @@ With an Assist Key press instead, edebug the test and step 
through it."
     (when test-name
       (hypb-ert-run-test-at-definition test-name t))))
 
-(defun hypb-ert-message-function (_msg-pat &rest _args)
-  "Ignore messages ert outputs so can display messages from tests run."
-  ;; (identity (apply #'format msg-pat args)))))))
-  nil)
-
 (provide 'hypb-ert)
 ;;; hypb-ert.el ends here



reply via email to

[Prev in Thread] Current Thread [Next in Thread]