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]
|
(:require [clojure.data :as data]
|
||||||
[clojure.pprint :as pp]))
|
[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
|
(defonce activation-body
|
||||||
(delay
|
(delay
|
||||||
(when (not (System/getenv "INHUMANE_TEST_OUTPUT"))
|
(when (not (System/getenv "INHUMANE_TEST_OUTPUT"))
|
||||||
(defmethod assert-expr '= [msg [_ a & more]]
|
(defmethod assert-expr '= [msg [_ a & more]]
|
||||||
`(let [a# ~a]
|
(=-body msg a more))
|
||||||
(if-let [more# (seq (list ~@more))]
|
(defmethod assert-expr 'clojure.core/= [msg [_ a & more]]
|
||||||
(let [result# (apply = a# more#)]
|
(=-body msg 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")))))
|
|
||||||
|
|
||||||
(defmethod report :fail
|
(defmethod report :fail
|
||||||
[{:keys [type expected actual diffs message] :as event}]
|
[{:keys [type expected actual diffs message] :as event}]
|
||||||
|
|
|
@ -17,3 +17,10 @@
|
||||||
(let [foo {:foo :bar :baz :quux :something "a long string?"
|
(let [foo {:foo :bar :baz :quux :something "a long string?"
|
||||||
:another-key "and another value"}]
|
:another-key "and another value"}]
|
||||||
(is (list? foo)))))
|
(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