mirror of
https://github.com/vale981/emacs-ipython-notebook
synced 2025-03-06 01:21:38 -05:00
Fix test-ein-node.el for Emacs 24.2
As of Emacs 24.2, ewoc-data is compiler macro and flet cannot be used to override the definition. Therefore, dummy object is used instead of mocking ewoc-data. See ein:testing-node-dummy-ewco-node for how the dummy object is made.
This commit is contained in:
parent
9321661867
commit
fe48a421c3
1 changed files with 71 additions and 62 deletions
|
@ -3,71 +3,80 @@
|
|||
|
||||
(require 'ein-node)
|
||||
|
||||
(defmacro eintest:with-ewoc-mock (&rest body)
|
||||
(declare (indent 0))
|
||||
`(flet ((ewoc-data (x) x))
|
||||
,@body))
|
||||
(defun ein:testing-node-dummy-ewco-node (data)
|
||||
`[nil nil ,data])
|
||||
|
||||
(defun ein:testing-node-ewoc-data (ewoc-node)
|
||||
(ein:$node-data (ewoc-data ewoc-node)))
|
||||
|
||||
(ert-deftest ein:testing-node-dummy-ewco-node ()
|
||||
(let* ((obj "some-object")
|
||||
(ewoc-node (ein:testing-node-dummy-ewco-node obj)))
|
||||
(should (eq (ewoc-data ewoc-node) obj))))
|
||||
|
||||
(ert-deftest ein:node-filter-is ()
|
||||
(eintest:with-ewoc-mock
|
||||
(let ((en-list (list (ein:node-new nil "s" '(spam sag))
|
||||
(ein:node-new nil "p" '(spam))
|
||||
(ein:node-new nil "e" '(egg))
|
||||
(ein:node-new nil "a" '(spam sag))
|
||||
(ein:node-new nil "g" '(egg sag))
|
||||
(ein:node-new nil "m" '(spam))
|
||||
(ein:node-new nil "g" '(egg)))))
|
||||
(should (equal (mapcar #'ein:$node-data
|
||||
(ein:node-filter en-list :is 'spam))
|
||||
'("s" "p" "a" "m")))
|
||||
(should (equal (mapcar #'ein:$node-data
|
||||
(ein:node-filter en-list :is 'egg))
|
||||
'("e" "g" "g")))
|
||||
(should (equal (mapcar #'ein:$node-data
|
||||
(ein:node-filter en-list :is 'sag))
|
||||
'("s" "a" "g"))))))
|
||||
(let ((en-list (mapcar
|
||||
#'ein:testing-node-dummy-ewco-node
|
||||
(list (ein:node-new nil "s" '(spam sag))
|
||||
(ein:node-new nil "p" '(spam))
|
||||
(ein:node-new nil "e" '(egg))
|
||||
(ein:node-new nil "a" '(spam sag))
|
||||
(ein:node-new nil "g" '(egg sag))
|
||||
(ein:node-new nil "m" '(spam))
|
||||
(ein:node-new nil "g" '(egg))))))
|
||||
(should (equal (mapcar #'ein:testing-node-ewoc-data
|
||||
(ein:node-filter en-list :is 'spam))
|
||||
'("s" "p" "a" "m")))
|
||||
(should (equal (mapcar #'ein:testing-node-ewoc-data
|
||||
(ein:node-filter en-list :is 'egg))
|
||||
'("e" "g" "g")))
|
||||
(should (equal (mapcar #'ein:testing-node-ewoc-data
|
||||
(ein:node-filter en-list :is 'sag))
|
||||
'("s" "a" "g")))))
|
||||
|
||||
(ert-deftest ein:node-filter-not ()
|
||||
(eintest:with-ewoc-mock
|
||||
(let ((en-list (list (ein:node-new nil "s" '(spam sag))
|
||||
(ein:node-new nil "p" '(spam))
|
||||
(ein:node-new nil "e" '(egg))
|
||||
(ein:node-new nil "a" '(spam sag))
|
||||
(ein:node-new nil "g" '(egg sag))
|
||||
(ein:node-new nil "m" '(spam))
|
||||
(ein:node-new nil "g" '(egg)))))
|
||||
(should (equal (mapcar #'ein:$node-data
|
||||
(ein:node-filter en-list :not 'spam))
|
||||
'("e" "g" "g")))
|
||||
(should (equal (mapcar #'ein:$node-data
|
||||
(ein:node-filter en-list :not 'egg))
|
||||
'("s" "p" "a" "m")))
|
||||
(should (equal (mapcar #'ein:$node-data
|
||||
(ein:node-filter en-list :not 'sag))
|
||||
'("p" "e" "m" "g"))))))
|
||||
(let ((en-list (mapcar
|
||||
#'ein:testing-node-dummy-ewco-node
|
||||
(list (ein:node-new nil "s" '(spam sag))
|
||||
(ein:node-new nil "p" '(spam))
|
||||
(ein:node-new nil "e" '(egg))
|
||||
(ein:node-new nil "a" '(spam sag))
|
||||
(ein:node-new nil "g" '(egg sag))
|
||||
(ein:node-new nil "m" '(spam))
|
||||
(ein:node-new nil "g" '(egg))))))
|
||||
(should (equal (mapcar #'ein:testing-node-ewoc-data
|
||||
(ein:node-filter en-list :not 'spam))
|
||||
'("e" "g" "g")))
|
||||
(should (equal (mapcar #'ein:testing-node-ewoc-data
|
||||
(ein:node-filter en-list :not 'egg))
|
||||
'("s" "p" "a" "m")))
|
||||
(should (equal (mapcar #'ein:testing-node-ewoc-data
|
||||
(ein:node-filter en-list :not 'sag))
|
||||
'("p" "e" "m" "g")))))
|
||||
|
||||
(ert-deftest ein:node-filter-is-and-not ()
|
||||
(eintest:with-ewoc-mock
|
||||
(let ((en-list (list (ein:node-new nil "s" '(spam sag))
|
||||
(ein:node-new nil "p" '(spam))
|
||||
(ein:node-new nil "e" '(egg))
|
||||
(ein:node-new nil "a" '(spam sag))
|
||||
(ein:node-new nil "g" '(egg sag))
|
||||
(ein:node-new nil "m" '(spam))
|
||||
(ein:node-new nil "g" '(egg)))))
|
||||
(should (equal (mapcar #'ein:$node-data
|
||||
(ein:node-filter en-list :not 'spam :is 'sag))
|
||||
'("g")))
|
||||
(should (equal (mapcar #'ein:$node-data
|
||||
(ein:node-filter en-list :is 'sag :not 'spam))
|
||||
'("g")))
|
||||
(should (equal (mapcar #'ein:$node-data
|
||||
(ein:node-filter en-list :is 'spam :is 'sag))
|
||||
'("s" "a")))
|
||||
(should (equal (mapcar #'ein:$node-data
|
||||
(ein:node-filter en-list :is 'sag :not 'spam
|
||||
:not 'not-existing))
|
||||
'("g")))
|
||||
(should (equal (mapcar #'ein:$node-data
|
||||
(ein:node-filter en-list :is 'sag :is 'spam))
|
||||
'("s" "a"))))))
|
||||
(let ((en-list (mapcar
|
||||
#'ein:testing-node-dummy-ewco-node
|
||||
(list (ein:node-new nil "s" '(spam sag))
|
||||
(ein:node-new nil "p" '(spam))
|
||||
(ein:node-new nil "e" '(egg))
|
||||
(ein:node-new nil "a" '(spam sag))
|
||||
(ein:node-new nil "g" '(egg sag))
|
||||
(ein:node-new nil "m" '(spam))
|
||||
(ein:node-new nil "g" '(egg))))))
|
||||
(should (equal (mapcar #'ein:testing-node-ewoc-data
|
||||
(ein:node-filter en-list :not 'spam :is 'sag))
|
||||
'("g")))
|
||||
(should (equal (mapcar #'ein:testing-node-ewoc-data
|
||||
(ein:node-filter en-list :is 'sag :not 'spam))
|
||||
'("g")))
|
||||
(should (equal (mapcar #'ein:testing-node-ewoc-data
|
||||
(ein:node-filter en-list :is 'spam :is 'sag))
|
||||
'("s" "a")))
|
||||
(should (equal (mapcar #'ein:testing-node-ewoc-data
|
||||
(ein:node-filter en-list :is 'sag :not 'spam
|
||||
:not 'not-existing))
|
||||
'("g")))
|
||||
(should (equal (mapcar #'ein:testing-node-ewoc-data
|
||||
(ein:node-filter en-list :is 'sag :is 'spam))
|
||||
'("s" "a")))))
|
||||
|
|
Loading…
Add table
Reference in a new issue