test cleanups
This commit is contained in:
parent
e02779688b
commit
aec0ccfe41
|
@ -14,3 +14,20 @@
|
|||
(defn reset-test-view-system-fixture [f]
|
||||
(reset! test-view-system {})
|
||||
(f))
|
||||
|
||||
(def redefs-called (atom {}))
|
||||
|
||||
(defn ->redef-fn
|
||||
[name & [return-value]]
|
||||
(fn [& args]
|
||||
(swap! redefs-called assoc name (vec args))
|
||||
return-value))
|
||||
|
||||
(defn called-with-args?
|
||||
[fn-name-kw & args]
|
||||
(= (get @redefs-called fn-name-kw)
|
||||
(vec args)))
|
||||
|
||||
(defn not-called?
|
||||
[fn-name-kw]
|
||||
(not (contains? @redefs-called fn-name-kw)))
|
||||
|
|
|
@ -7,20 +7,12 @@
|
|||
[clojure.java.jdbc :as jdbc]
|
||||
[views.core :as views]))
|
||||
|
||||
(def redefs-called (atom {}))
|
||||
|
||||
(defn ->redef-fn
|
||||
[name & [return-value]]
|
||||
(fn [& args]
|
||||
(swap! redefs-called assoc name (vec args))
|
||||
return-value))
|
||||
|
||||
(defn vexec-redefs-fixture [f]
|
||||
(reset! redefs-called {})
|
||||
(with-redefs
|
||||
[jdbc/query (->redef-fn :jdbc/query :jdbc/query-return-value)
|
||||
jdbc/execute! (->redef-fn :jdbc/execute! :jdbc/execute!-return-value)
|
||||
views/put-hints! (->redef-fn :views/put-hints!)]
|
||||
[jdbc/query (->redef-fn :jdbc/query :jdbc/query-return-value)
|
||||
jdbc/execute! (->redef-fn :jdbc/execute! :jdbc/execute!-return-value)
|
||||
views/put-hints! (->redef-fn :views/put-hints!)]
|
||||
(f)))
|
||||
|
||||
|
||||
|
@ -31,32 +23,28 @@
|
|||
result (vexec! test-view-system test-db sqlvec)]
|
||||
(is (= [test-db sqlvec] (:jdbc/execute! @redefs-called)))
|
||||
(is (= :jdbc/execute!-return-value result))
|
||||
(is (= [test-view-system [(views/hint nil #{:example} hint-type)]]
|
||||
(:views/put-hints! @redefs-called)))))
|
||||
(is (called-with-args? :views/put-hints! test-view-system [(views/hint nil #{:example} hint-type)]))))
|
||||
|
||||
(deftest vexec-runs-query-with-returning-clause
|
||||
(let [sqlvec ["INSERT INTO example (field1, field2, field3) VALUES ('test', 'N', NULL) RETURNING *"]
|
||||
result (vexec! test-view-system test-db sqlvec)]
|
||||
(is (= [test-db sqlvec] (:jdbc/query @redefs-called)))
|
||||
(is (= :jdbc/query-return-value result))
|
||||
(is (= [test-view-system [(views/hint nil #{:example} hint-type)]]
|
||||
(:views/put-hints! @redefs-called)))))
|
||||
(is (called-with-args? :views/put-hints! test-view-system [(views/hint nil #{:example} hint-type)]))))
|
||||
|
||||
(deftest namespace-is-passed-along-to-hints-via-vexec
|
||||
(let [sqlvec ["INSERT INTO example (field1, field2, field3) VALUES ('test', 'N', NULL)"]
|
||||
result (vexec! test-view-system test-db sqlvec {:namespace :foobar})]
|
||||
(is (= [test-db sqlvec] (:jdbc/execute! @redefs-called)))
|
||||
(is (= :jdbc/execute!-return-value result))
|
||||
(is (= [test-view-system [(views/hint :foobar #{:example} hint-type)]]
|
||||
(:views/put-hints! @redefs-called)))))
|
||||
(is (called-with-args? :views/put-hints! test-view-system [(views/hint :foobar #{:example} hint-type)]))))
|
||||
|
||||
(deftest manually-provided-hints-to-vexec-are-passed-to-views-system
|
||||
(let [sqlvec ["INSERT INTO example (field1, field2, field3) VALUES ('test', 'N', NULL)"]
|
||||
result (vexec! test-view-system test-db sqlvec [:foo :bar])]
|
||||
(is (= [test-db sqlvec] (:jdbc/execute! @redefs-called)))
|
||||
(is (= :jdbc/execute!-return-value result))
|
||||
(is (= [test-view-system [(views/hint nil #{:foo :bar} hint-type)]]
|
||||
(:views/put-hints! @redefs-called)))))
|
||||
(is (called-with-args? :views/put-hints! test-view-system [(views/hint nil #{:foo :bar} hint-type)]))))
|
||||
|
||||
(deftest manually-provided-hints-to-vexec-also-requires-specifying-returning-option
|
||||
(let [sqlvec ["INSERT INTO example (field1, field2, field3) VALUES ('test', 'N', NULL) RETURNING *"]
|
||||
|
@ -65,8 +53,7 @@
|
|||
; if jdbc/execute! was really called it would throw an exception since the INSERT query used has a RETURNING clause
|
||||
(is (= [test-db sqlvec] (:jdbc/execute! @redefs-called)))
|
||||
(is (= :jdbc/execute!-return-value result))
|
||||
(is (= [test-view-system [(views/hint nil #{:foo :bar} hint-type)]]
|
||||
(:views/put-hints! @redefs-called))))
|
||||
(is (called-with-args? :views/put-hints! test-view-system [(views/hint nil #{:foo :bar} hint-type)])))
|
||||
; manually reset some things
|
||||
(reset! redefs-called {})
|
||||
(reset! query-info-cache {})
|
||||
|
@ -74,5 +61,4 @@
|
|||
result (vexec! test-view-system test-db sqlvec [:foo :bar] {:returning? true})]
|
||||
(is (= [test-db sqlvec] (:jdbc/query @redefs-called)))
|
||||
(is (= :jdbc/query-return-value result))
|
||||
(is (= [test-view-system [(views/hint nil #{:foo :bar} hint-type)]]
|
||||
(:views/put-hints! @redefs-called)))))
|
||||
(is (called-with-args? :views/put-hints! test-view-system [(views/hint nil #{:foo :bar} hint-type)]))))
|
||||
|
|
|
@ -9,14 +9,6 @@
|
|||
[clojure.java.jdbc :as jdbc]
|
||||
[views.core :as views]))
|
||||
|
||||
(def redefs-called (atom {}))
|
||||
|
||||
(defn ->redef-fn
|
||||
[name & [return-value]]
|
||||
(fn [& args]
|
||||
(swap! redefs-called assoc name (vec args))
|
||||
return-value))
|
||||
|
||||
(defn view-redefs-fixture [f]
|
||||
(reset! redefs-called {})
|
||||
(with-redefs
|
||||
|
@ -36,8 +28,7 @@
|
|||
(is (= true (relevant? sql-view nil [] [(views/hint nil #{:foobar} hint-type)])))
|
||||
(is (= false (relevant? sql-view nil [] [(views/hint nil #{:baz} hint-type)])))
|
||||
(is (= :jdbc/query-return-value (data sql-view nil [])))
|
||||
(is (= [test-db sqlvec {}]
|
||||
(:jdbc/query @redefs-called)))))
|
||||
(is (called-with-args? :jdbc/query test-db sqlvec {}))))
|
||||
|
||||
(deftest basic-sql-view-works-with-parameters
|
||||
(let [sqlvec ["SELECT * FROM foobar"]
|
||||
|
@ -45,8 +36,7 @@
|
|||
sql-view (view :test-view test-db sql-fn)]
|
||||
(is (= true (relevant? sql-view nil [1 2] [(views/hint nil #{:foobar} hint-type)])))
|
||||
(is (= :jdbc/query-return-value (data sql-view nil [1 2])))
|
||||
(is (= [test-db (into sqlvec [1 2]) {}]
|
||||
(:jdbc/query @redefs-called)))))
|
||||
(is (called-with-args? :jdbc/query test-db (into sqlvec [1 2]) {}))))
|
||||
|
||||
(deftest basic-sql-view-works-with-namespace
|
||||
(let [sqlvec ["SELECT * FROM foobar"]
|
||||
|
@ -55,8 +45,7 @@
|
|||
(is (= true (relevant? sql-view :abc [] [(views/hint :abc #{:foobar} hint-type)])))
|
||||
(is (= false (relevant? sql-view :123 [] [(views/hint :abc #{:foobar} hint-type)])))
|
||||
(is (= :jdbc/query-return-value (data sql-view nil [])))
|
||||
(is (= [test-db sqlvec {}]
|
||||
(:jdbc/query @redefs-called)))))
|
||||
(is (called-with-args? :jdbc/query test-db sqlvec {}))))
|
||||
|
||||
(deftest view-db-fn-is-used-when-provided
|
||||
(let [alt-test-db {:alternate-test-db-conn true}
|
||||
|
@ -65,8 +54,7 @@
|
|||
sql-fn (fn [] sqlvec)
|
||||
sql-view (view :test-view db-fn sql-fn)]
|
||||
(is (= :jdbc/query-return-value (data sql-view nil [])))
|
||||
(is (= [alt-test-db sqlvec {}]
|
||||
(:jdbc/query @redefs-called)))))
|
||||
(is (called-with-args? :jdbc/query alt-test-db sqlvec {}))))
|
||||
|
||||
(deftest view-db-fn-is-passed-namespace
|
||||
(let [test-namespace :test-namespace
|
||||
|
@ -78,8 +66,7 @@
|
|||
sql-fn (fn [] sqlvec)
|
||||
sql-view (view :test-view db-fn sql-fn)]
|
||||
(is (= :jdbc/query-return-value (data sql-view test-namespace [])))
|
||||
(is (= [alt-test-db sqlvec {}]
|
||||
(:jdbc/query @redefs-called)))))
|
||||
(is (called-with-args? :jdbc/query alt-test-db sqlvec {}))))
|
||||
|
||||
(deftest manually-specified-view-hints-are-used-correctly
|
||||
(with-redefs
|
||||
|
@ -92,4 +79,4 @@
|
|||
(is (= true (relevant? sql-view nil [] [(views/hint nil #{:bar} hint-type)])))
|
||||
(is (= true (relevant? sql-view nil [] [(views/hint nil #{:bar} hint-type)
|
||||
(views/hint nil #{:foo} hint-type)])))
|
||||
(is (not (contains? @redefs-called :query-tables))))))
|
||||
(is (not-called? :query-tables)))))
|
||||
|
|
Loading…
Reference in a new issue