[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/buttercup 38cfa6f 270/340: Fix spy-on on Emacs 24.3 for sy
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/buttercup 38cfa6f 270/340: Fix spy-on on Emacs 24.3 for symbols that are not fbound |
Date: |
Thu, 16 Dec 2021 14:59:48 -0500 (EST) |
branch: elpa/buttercup
commit 38cfa6f62451fbea1b103400fa80eff4ed39833a
Author: Ola Nilsson <ola.nilsson@gmail.com>
Commit: Ola Nilsson <ola.nilsson@gmail.com>
Fix spy-on on Emacs 24.3 for symbols that are not fbound
symbol-function signals an error when called with a nil argument on
Emacs 24.3. Add fboundp checks where required to make this work.
---
buttercup.el | 8 ++++----
tests/test-buttercup.el | 5 +++++
2 files changed, 9 insertions(+), 4 deletions(-)
diff --git a/buttercup.el b/buttercup.el
index 07cef4a..4315f49 100644
--- a/buttercup.el
+++ b/buttercup.el
@@ -1102,10 +1102,10 @@ also be a command with the same interactive form, unless
`:and-call-fake' is used, in which case it is the caller's
responsibility to ensure ARG is a command."
;; We need to load an autoloaded function before spying on it
- (when (autoloadp (symbol-function symbol))
+ (when (autoloadp (and (fboundp symbol) (symbol-function symbol)))
(autoload-do-load (symbol-function symbol) symbol))
- (cl-assert (not (autoloadp (symbol-function symbol))))
- (let* ((orig (symbol-function symbol))
+ (cl-assert (not (autoloadp (and (fboundp symbol) (symbol-function symbol)))))
+ (let* ((orig (and (fboundp symbol) (symbol-function symbol)))
(orig-intform (interactive-form orig))
(replacement
(pcase
@@ -1150,7 +1150,7 @@ responsibility to ensure ARG is a command."
(defun buttercup--spy-on-and-call-replacement (spy fun)
"Replace the function in symbol SPY with a spy calling FUN."
- (let ((orig-function (symbol-function spy)))
+ (let ((orig-function (and (fboundp spy) (symbol-function spy))))
(when (buttercup--add-cleanup (lambda ()
(fset spy orig-function)))
(fset spy (buttercup--make-spy fun)))))
diff --git a/tests/test-buttercup.el b/tests/test-buttercup.el
index e3802d3..fe94749 100644
--- a/tests/test-buttercup.el
+++ b/tests/test-buttercup.el
@@ -746,6 +746,11 @@
:to-be :loaded-successfully))
(delete-file function-file nil))))
+ (it "can spy on non-existing functions"
+ (spy-on 'local-function)
+ (local-function)
+ (expect 'local-function :to-have-been-called))
+
(it "only accepts ARG for keywords that use it"
(expect
(spy-on 'test-function :and-call-through :arg-not-allowed)
- [nongnu] elpa/buttercup 6590360 226/340: Fix a few typos and other small errors, (continued)
- [nongnu] elpa/buttercup 6590360 226/340: Fix a few typos and other small errors, ELPA Syncer, 2021/12/16
- [nongnu] elpa/buttercup 8a28489 230/340: Bump version: 1.18 → 1.19, ELPA Syncer, 2021/12/16
- [nongnu] elpa/buttercup 0e40587 231/340: Tweak the spy-contexts to be more backward compatible, ELPA Syncer, 2021/12/16
- [nongnu] elpa/buttercup 60028db 236/340: docs: Clarify the spy lifespan in writing-tests.md, ELPA Syncer, 2021/12/16
- [nongnu] elpa/buttercup 9c4b473 237/340: test: Add missing apostrophe in spec title, ELPA Syncer, 2021/12/16
- [nongnu] elpa/buttercup 90654ec 238/340: Update some docstrings, ELPA Syncer, 2021/12/16
- [nongnu] elpa/buttercup 178c795 242/340: README: Add '-L .' to test runner example, ELPA Syncer, 2021/12/16
- [nongnu] elpa/buttercup fc4276a 247/340: Make it possible to abort test run cleanly, ELPA Syncer, 2021/12/16
- [nongnu] elpa/buttercup dbcd3d4 256/340: Calculate total test run time with current-time, ELPA Syncer, 2021/12/16
- [nongnu] elpa/buttercup c83ba7d 268/340: Extract function buttercup-elapsed-time-string, ELPA Syncer, 2021/12/16
- [nongnu] elpa/buttercup 38cfa6f 270/340: Fix spy-on on Emacs 24.3 for symbols that are not fbound,
ELPA Syncer <=
- [nongnu] elpa/buttercup 81bfed4 272/340: test: Add utility function send-string-to-ansi-buffer, ELPA Syncer, 2021/12/16
- [nongnu] elpa/buttercup cf4eee8 274/340: test: Verify output in the "The batch reporter" suite, ELPA Syncer, 2021/12/16
- [nongnu] elpa/buttercup 4159111 275/340: test: Verify full line for reporter spec-done tests, ELPA Syncer, 2021/12/16
- [nongnu] elpa/buttercup fbb790b 278/340: test: Add tests for buttercup-started and buttercup-reporter-batch-color, ELPA Syncer, 2021/12/16
- [nongnu] elpa/buttercup d563e18 281/340: test: Add color tests for suite-done, ELPA Syncer, 2021/12/16
- [nongnu] elpa/buttercup b910b71 285/340: Extract buttercup--indented-description from the batch reporters, ELPA Syncer, 2021/12/16
- [nongnu] elpa/buttercup e71a40f 287/340: Make sure carriage movement characters are not colorized, ELPA Syncer, 2021/12/16
- [nongnu] elpa/buttercup a22fc29 288/340: Bump version: 1.21 → 1.22, ELPA Syncer, 2021/12/16
- [nongnu] elpa/buttercup dde8651 290/340: Add new function buttercup--spec-mark-pending and use it, ELPA Syncer, 2021/12/16
- [nongnu] elpa/buttercup c59110b 291/340: test: Extend with-local-buttercup with some key arguments, ELPA Syncer, 2021/12/16