Correctly format diff output when = is fully qualified.
This commit is contained in:
parent
7bb7cf9050
commit
f4b2e226cb
2 changed files with 27 additions and 14 deletions
|
@ -3,24 +3,30 @@
|
|||
(:require [clojure.data :as data]
|
||||
[clojure.pprint :as pp]))
|
||||
|
||||
(defn =-body
|
||||
[msg a more]
|
||||
`(let [a# ~a]
|
||||
(if-let [more# (seq (list ~@more))]
|
||||
(let [result# (apply = a# more#)]
|
||||
(if result#
|
||||
(do-report {:type :pass, :message ~msg,
|
||||
:expected a#, :actual more#})
|
||||
(do-report {:type :fail, :message ~msg,
|
||||
:expected a#, :actual more#,
|
||||
:diffs (map vector
|
||||
more#
|
||||
(map #(take 2 (data/diff a# %))
|
||||
more#))}))
|
||||
result#)
|
||||
(throw (Exception. "= expects more than one argument")))))
|
||||
|
||||
(defonce activation-body
|
||||
(delay
|
||||
(when (not (System/getenv "INHUMANE_TEST_OUTPUT"))
|
||||
(defmethod assert-expr '= [msg [_ a & more]]
|
||||
`(let [a# ~a]
|
||||
(if-let [more# (seq (list ~@more))]
|
||||
(let [result# (apply = a# more#)]
|
||||
(if result#
|
||||
(do-report {:type :pass, :message ~msg,
|
||||
:expected a#, :actual more#})
|
||||
(do-report {:type :fail, :message ~msg,
|
||||
:expected a#, :actual more#,
|
||||
:diffs (map vector
|
||||
more#
|
||||
(map #(take 2 (data/diff a# %))
|
||||
more#))}))
|
||||
result#)
|
||||
(throw (Exception. "= expects more than one argument")))))
|
||||
(=-body msg a more))
|
||||
(defmethod assert-expr 'clojure.core/= [msg [_ a & more]]
|
||||
(=-body msg a more))
|
||||
|
||||
(defmethod report :fail
|
||||
[{:keys [type expected actual diffs message] :as event}]
|
||||
|
|
|
@ -17,3 +17,10 @@
|
|||
(let [foo {:foo :bar :baz :quux :something "a long string?"
|
||||
:another-key "and another value"}]
|
||||
(is (list? foo)))))
|
||||
|
||||
(defmacro deftest+
|
||||
[test-name expected actual]
|
||||
`(deftest ~test-name
|
||||
(is (= ~expected ~actual))))
|
||||
|
||||
(deftest+ t-macro-wrapping 1 2)
|
||||
|
|
Loading…
Reference in a new issue