emacs-ipython-notebook/test/ein-testing-kernel.el
2020-01-02 20:09:42 -05:00

85 lines
3.1 KiB
EmacsLisp
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

;;; ein-testing-kernel.el --- Testing utilities for kernel module
;; Copyright (C) 2012 Takafumi Arakaki
;; Author: Takafumi Arakaki <aka.tkf at gmail.com>
;; This file is NOT part of GNU Emacs.
;; ein-testing-kernel.el is free software: you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation, either version 3 of the License, or
;; (at your option) any later version.
;; ein-testing-kernel.el is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;; You should have received a copy of the GNU General Public License
;; along with ein-testing-kernel.el. If not, see <http://www.gnu.org/licenses/>.
;;; Commentary:
;;
;;; Code:
(eval-when-compile (require 'cl))
(require 'ert)
(require 'ein-kernel)
;;; Test `ein:kernel-construct-help-string'
(defvar ein:testing-kernel-construct-help-string-pcallsig-list
'(nil :call_def :init_definition :definition))
(defvar ein:testing-kernel-construct-help-string-pdocstring-list
'(nil :call_docstring :init_docstring :docstring))
(defun ein:testing-kernel-construct-help-string-test-func (content result)
(should (equal (ein:kernel-construct-help-string content) result)))
(defun ein:testing-kernel-construct-help-string-loop
(&optional test pcallsig-list pdocstring-list)
"Run tests for `ein:kernel-construct-help-string-loop'.
TEST
A function takes two arguments, namely CONTENT and RESULT.
CONTENT is the argument to `ein:kernel-construct-help-string' and
RESULT must match to its returned value. Use `should' to test
equality.
PCALLSIG-LIST
`nil' or (subset of) `ein:testing-kernel-construct-help-string-pcallsig-list'.
PDOCSTRING-LIST
`nil' or (subset of) `ein:testing-kernel-construct-help-string-pdocstring-list'.
All combinations of PCALLSIG-LIST and PDOCSTRING-LIST are used to
construct CONTENT and RESULT."
(unless test
(setq test #'ein:testing-kernel-construct-help-string-test-func))
(unless pcallsig-list
(setq pcallsig-list
ein:testing-kernel-construct-help-string-pcallsig-list))
(unless pdocstring-list
(setq pdocstring-list
ein:testing-kernel-construct-help-string-pdocstring-list))
(cl-loop with callsig = "function(a=1, b=2, c=d)"
with docstring = "This function does what."
for pcallsig in pcallsig-list
do (cl-loop for pdoc in pdocstring-list
for content = (append
(when pcallsig (list pcallsig callsig))
(when pdoc (list pdoc docstring)))
for result = (aif (append
(when pcallsig (list callsig))
(when pdoc (list docstring)))
(ein:join-str "\n" it))
do (funcall test content result))))
(provide 'ein-testing-kernel)
;;; ein-testing-kernel.el ends here