branch: externals/debbugs commit b1432d4f1a9d873b711c1edb650fe8bb3d514ed8 Author: Morgan Smith <morgan.j.sm...@outlook.com> Commit: Michael Albinus <michael.albi...@gmx.de>
tests: Call new setup and teardown functions in tests * test/debbugs-tests.el: (Bug#75789) Create new functions `debbugs-test--setup' and `debbugs-test--teardown' to be run before and after each test. Create new macro `ert-deftest--debbugs' to automatically call the new functions. Adjust tests to use the new macro. --- test/debbugs-tests.el | 91 +++++++++++++++++++++++++++++++-------------------- 1 file changed, 56 insertions(+), 35 deletions(-) diff --git a/test/debbugs-tests.el b/test/debbugs-tests.el index ce6489ca39..8402a4fff9 100644 --- a/test/debbugs-tests.el +++ b/test/debbugs-tests.el @@ -89,49 +89,70 @@ nil) return))) -(add-function - :override (symbol-function #'soap-invoke-internal) - #'debbugs-test--soap-invoke-internal) +(defun debbugs-test--setup () + "Mock network and time functions. +These mock functions are needed to make the tests reproducible." + (setq debbugs-test--soap-operation-name nil) + (setq debbugs-test--soap-parameters nil) + + (add-function + :override (symbol-function #'soap-invoke-internal) + #'debbugs-test--soap-invoke-internal)) + +(defun debbugs-test--teardown () + "Restore functions to as they where before." + (setq debbugs-test--soap-operation-name nil) + (setq debbugs-test--soap-parameters nil) + + (remove-function + (symbol-function #'soap-invoke-internal) + #'debbugs-test--soap-invoke-internal)) + +(defmacro ert-deftest--debbugs (name args docstring &rest body) + "The same as `ert-deftest' but runs setup and teardown functions." + (declare + (doc-string 3) + (indent 2)) + `(ert-deftest ,name ,args ,docstring + (debbugs-test--setup) + ,@body + (debbugs-test--teardown))) ;;; Tests: -(ert-deftest debbugs-test-get-bugs () +(ert-deftest--debbugs debbugs-test-get-bugs () "Test \"get_bugs\"." - (let (debbugs-test--soap-operation-name debbugs-test--soap-parameters) - (debbugs-get-bugs - :tag "patch" - :severity "critical" - :status "open" - :status "forwarded") - (should (string-equal debbugs-test--soap-operation-name "get_bugs")) - (should (equal debbugs-test--soap-parameters - '(["tag" "patch" "severity" "critical" - "status" "open" "status" "forwarded"]))))) - -(ert-deftest debbugs-test-newest-bugs () + (debbugs-get-bugs + :tag "patch" + :severity "critical" + :status "open" + :status "forwarded") + (should (string-equal debbugs-test--soap-operation-name "get_bugs")) + (should (equal debbugs-test--soap-parameters + '(["tag" "patch" "severity" "critical" + "status" "open" "status" "forwarded"])))) + +(ert-deftest--debbugs debbugs-test-newest-bugs () "Test \"newest_bugs\"." - (let (debbugs-test--soap-operation-name debbugs-test--soap-parameters) - (debbugs-newest-bugs 4) - (should (string-equal debbugs-test--soap-operation-name "newest_bugs")) - (should (equal debbugs-test--soap-parameters '(4))))) + (debbugs-newest-bugs 4) + (should (string-equal debbugs-test--soap-operation-name "newest_bugs")) + (should (equal debbugs-test--soap-parameters '(4)))) -(ert-deftest debbugs-test-get-status () +(ert-deftest--debbugs debbugs-test-get-status () "Test \"get_status\"." - (let (debbugs-test--soap-operation-name debbugs-test--soap-parameters) - (cl-letf (((symbol-function #'float-time) - (lambda (&optional _specified-time) 5000))) - (should (= (float-time) 5000)) - (should (equal (sort (car (debbugs-get-status 64064))) - (sort (car debbugs-test--bug-status)))) - (should (string-equal debbugs-test--soap-operation-name "get_status")) - (should (equal debbugs-test--soap-parameters '([64064])))))) - -(ert-deftest debbugs-test-get-usertag () + (cl-letf (((symbol-function #'float-time) + (lambda (&optional _specified-time) 5000))) + (should (= (float-time) 5000)) + (should (equal (sort (car (debbugs-get-status 64064))) + (sort (car debbugs-test--bug-status)))) + (should (string-equal debbugs-test--soap-operation-name "get_status")) + (should (equal debbugs-test--soap-parameters '([64064]))))) + +(ert-deftest--debbugs debbugs-test-get-usertag () "Test \"get_usertag\"." - (let (debbugs-test--soap-operation-name debbugs-test--soap-parameters) - (should (equal (debbugs-get-usertag :user "emacs") '("hi"))) - (should (string-equal debbugs-test--soap-operation-name "get_usertag")) - (should (equal debbugs-test--soap-parameters '("emacs"))))) + (should (equal (debbugs-get-usertag :user "emacs") '("hi"))) + (should (string-equal debbugs-test--soap-operation-name "get_usertag")) + (should (equal debbugs-test--soap-parameters '("emacs")))) (provide 'debbugs-tests)