From 9220b983c5d7092629372ddbc1e9ecd21b6ce78b Mon Sep 17 00:00:00 2001 From: Michiel Borkent Date: Wed, 3 Feb 2021 23:06:18 +0100 Subject: [PATCH] Fix gaka tests --- project.clj | 2 +- src/babashka/impl/clojure/test.clj | 17 ++++++------ src/babashka/impl/test.clj | 29 ++++++++++----------- test-resources/lib_tests/gaka/core_test.clj | 6 ++--- 4 files changed, 26 insertions(+), 28 deletions(-) diff --git a/project.clj b/project.clj index 61fe0263..ff337606 100644 --- a/project.clj +++ b/project.clj @@ -15,7 +15,7 @@ :java-source-paths ["src-java"] :resource-paths ["resources" "sci/resources"] :dependencies [[org.clojure/clojure "1.10.2-alpha2"] - [borkdude/edamame "0.0.11-alpha.28"] + [borkdude/edamame "0.0.11-alpha.29"] [borkdude/graal.locking "0.0.2"] [org.clojure/tools.cli "1.0.194"] [cheshire "5.10.0"] diff --git a/src/babashka/impl/clojure/test.clj b/src/babashka/impl/clojure/test.clj index a0540901..a0ef82a4 100644 --- a/src/babashka/impl/clojure/test.clj +++ b/src/babashka/impl/clojure/test.clj @@ -243,6 +243,7 @@ ;; Nothing is marked "private" here, so you can rebind things to plug ;; in your own testing or reporting frameworks. +(def tns (sci/create-ns 'clojure.test nil)) ;;; USER-MODIFIABLE GLOBALS @@ -251,28 +252,28 @@ be created by deftest, set-test, or with-test. Use this to omit tests when compiling or loading production code."} load-tests - (sci/new-dynamic-var '*load-tests* true)) + (sci/new-dynamic-var '*load-tests* true {:ns tns})) (def ^{:doc "The maximum depth of stack traces to print when an Exception is thrown during a test. Defaults to nil, which means print the complete stack trace."} stack-trace-depth - (sci/new-dynamic-var '*stack-trace-depth* nil)) + (sci/new-dynamic-var '*stack-trace-depth* nil {:ns tns})) ;;; GLOBALS USED BY THE REPORTING FUNCTIONS -(def report-counters (sci/new-dynamic-var '*report-counters* nil)) ; bound to a ref of a map in test-ns +(def report-counters (sci/new-dynamic-var '*report-counters* nil {:ns tns})) ; bound to a ref of a map in test-ns (def initial-report-counters ; used to initialize *report-counters* - (sci/new-dynamic-var '*initial-report-counters* {:test 0, :pass 0, :fail 0, :error 0})) + (sci/new-dynamic-var '*initial-report-counters* {:test 0, :pass 0, :fail 0, :error 0} {:ns tns})) -(def testing-vars (sci/new-dynamic-var '*testing-vars* (list))) ; bound to hierarchy of vars being tested +(def testing-vars (sci/new-dynamic-var '*testing-vars* (list) {:ns tns})) ; bound to hierarchy of vars being tested -(def testing-contexts (sci/new-dynamic-var '*testing-contexts* (list))) ; bound to hierarchy of "testing" strings +(def testing-contexts (sci/new-dynamic-var '*testing-contexts* (list) {:ns tns})) ; bound to hierarchy of "testing" strings -(def test-out (sci/new-dynamic-var '*test-out* sci/out)) ; PrintWriter for test reporting output +(def test-out (sci/new-dynamic-var '*test-out* sci/out {:ns tns})) ; PrintWriter for test reporting output (defmacro with-test-out-internal "Runs body with *out* bound to the value of *test-out*." @@ -324,8 +325,6 @@ :added "1.1"} report-impl :type) -(def tns (sci/create-ns 'clojure.test nil)) - (def report (sci/copy-var report-impl tns)) (defn do-report diff --git a/src/babashka/impl/test.clj b/src/babashka/impl/test.clj index 331b72a5..0d6dfbc3 100644 --- a/src/babashka/impl/test.clj +++ b/src/babashka/impl/test.clj @@ -1,16 +1,17 @@ (ns babashka.impl.test (:require [babashka.impl.clojure.test :as t] - [babashka.impl.common :refer [ctx]])) - -(defn macrofy [v] - (with-meta v {:sci/macro true})) + [babashka.impl.common :refer [ctx]] + [sci.core :as sci])) (defn contextualize [f] (fn [& args] (apply f @ctx args))) +(def tns t/tns) + (def clojure-test-namespace - {'*load-tests* t/load-tests + {:obj tns + '*load-tests* t/load-tests '*stack-trace-depth* t/stack-trace-depth '*report-counters* t/report-counters '*initial-report-counters* t/initial-report-counters @@ -30,18 +31,16 @@ 'assert-any t/assert-any ;; assertion methods 'assert-expr t/assert-expr - 'try-expr (with-meta @#'t/try-expr - {:sci/macro true}) + 'try-expr (sci/copy-var t/try-expr tns) ;; assertion macros - 'is (with-meta @#'t/is - {:sci/macro true}) - 'are (macrofy @#'t/are) - 'testing (macrofy @#'t/testing) + 'is (sci/copy-var t/is tns) + 'are (sci/copy-var t/are tns) + 'testing (sci/copy-var t/testing tns) ;; defining tests - 'with-test (macrofy @#'t/with-test) - 'deftest (macrofy @#'t/deftest) - 'deftest- (macrofy @#'t/deftest-) - 'set-test (macrofy @#'t/set-test) + 'with-test (sci/copy-var t/with-test tns) + 'deftest (sci/copy-var t/deftest tns) + 'deftest- (sci/copy-var t/deftest- tns) + 'set-test (sci/copy-var t/set-test tns) ;; fixtures 'use-fixtures t/use-fixtures 'compose-fixtures t/compose-fixtures diff --git a/test-resources/lib_tests/gaka/core_test.clj b/test-resources/lib_tests/gaka/core_test.clj index 7084eee4..622c4756 100644 --- a/test-resources/lib_tests/gaka/core_test.clj +++ b/test-resources/lib_tests/gaka/core_test.clj @@ -1,10 +1,10 @@ (ns gaka.core-test - (:require [clojure.test :refer [deftest is #_are]] + (:require [clojure.test :refer [deftest is are]] [gaka.core :refer [css compile* inline-css render-rule]] )) (defmacro =? [& body] - `(clojure.test/are [x# y#] (= x# y#) + `(are [x# y#] (= x# y#) ~@body)) (deftest test-flatten @@ -26,7 +26,7 @@ (=? (flatten-maps [1 2 {3 4}]) [1 2 3 4]) - #_(=? (flatten-maps [1 {2 3 4 5} 6]) + (=? (flatten-maps [1 {2 3 4 5} 6]) [1 2 3 4 5 6]) (=? (flatten-keyvals [1 '(2 {3 4} 5)])