Refactor tests

This commit is contained in:
Michiel Borkent 2020-05-09 14:09:58 +02:00
parent 52e86aff48
commit 4d484dc126
4 changed files with 38 additions and 48 deletions

View file

@ -3,8 +3,14 @@
A library to load babashka pods. Used by babashka but also usable from the JVM A library to load babashka pods. Used by babashka but also usable from the JVM
or other [sci](https://github.com/borkdude/sci)-based projects. or other [sci](https://github.com/borkdude/sci)-based projects.
More information about babashka pods can be found
[here](https://github.com/borkdude/babashka/blob/master/doc/pods.md).
## Usage ## Usage
Using [pod-babashka-hsqldb](https://github.com/borkdude/pod-babashka-hsqldb) as
an example pod.
On the JVM: On the JVM:
``` clojure ``` clojure

View file

@ -1,36 +1,15 @@
(ns babashka.pods.jvm-test (ns babashka.pods.jvm-test
(:require [clojure.test :refer [deftest is]])) (:require [babashka.pods.test-common :refer [test-program]]
[clojure.string :as str]
[clojure.test :refer [deftest is]]))
(deftest jvm-test2 (deftest jvm-test
(let [out (java.io.StringWriter.) (let [out (java.io.StringWriter.)
err (java.io.StringWriter.) err (java.io.StringWriter.)
ret (binding [*out* out ret (binding [*out* out
*err* err] *err* err]
(try (load-string (try (load-string
" (str/replace test-program "babashka.pods" "babashka.pods.jvm"))
(require '[babashka.pods.jvm :as pods])
(require '[clojure.core.async :as async])
(pods/load-pod [\"clojure\" \"-A:test-pod\" \"--run-as-pod\"])
(require '[pod.test-pod :as pod])
(def stream-results (atom []))
(let [chan (pod.test-pod/range-stream 1 10)]
(loop []
(when-let [x (async/<!! chan)]
(swap! stream-results conj x)
(recur))))
(def ex-result
(try (pod.test-pod/error 1 2 3)
(catch clojure.lang.ExceptionInfo e
(str (ex-message e) \" / \" (ex-data e)))))
(pod.test-pod/print \"hello\" \"print\" \"this\" \"debugging\" \"message\")
(pod.test-pod/print-err \"hello\" \"print\" \"this\" \"error\")
[(pod/assoc {:a 1} :b 2)
(pod.test-pod/add-sync 1 2 3)
@stream-results
ex-result]")
(catch Exception e (prn e))))] (catch Exception e (prn e))))]
(is (= '[{:a 1, :b 2} (is (= '[{:a 1, :b 2}

View file

@ -1,5 +1,6 @@
(ns babashka.pods.sci-test (ns babashka.pods.sci-test
(:require [babashka.pods.sci :as pods] (:require [babashka.pods.sci :as pods]
[babashka.pods.test-common :refer [test-program]]
[clojure.core.async :as async] [clojure.core.async :as async]
[clojure.test :refer [deftest is]] [clojure.test :refer [deftest is]]
[sci.core :as sci])) [sci.core :as sci]))
@ -10,28 +11,7 @@
ret (sci/binding [sci/out out ret (sci/binding [sci/out out
sci/err err] sci/err err]
(sci/eval-string (sci/eval-string
" test-program
(require '[babashka.pods :as pods])
(require '[clojure.core.async :as async])
(pods/load-pod [\"clojure\" \"-A:test-pod\" \"--run-as-pod\"])
(require '[pod.test-pod :as pod])
(def stream-results (atom []))
(let [chan (pod.test-pod/range-stream 1 10)]
(loop []
(when-let [x (async/<!! chan)]
(swap! stream-results conj x)
(recur))))
(def ex-result
(try (pod.test-pod/error 1 2 3)
(catch clojure.lang.ExceptionInfo e
(str (ex-message e) \" / \" (ex-data e)))))
(pod.test-pod/print \"hello\" \"print\" \"this\" \"debugging\" \"message\")
(pod.test-pod/print-err \"hello\" \"print\" \"this\" \"error\")
[(pod/assoc {:a 1} :b 2)
(pod.test-pod/add-sync 1 2 3)
@stream-results
ex-result]"
{:namespaces {'babashka.pods {:namespaces {'babashka.pods
{'load-pod pods/load-pod} {'load-pod pods/load-pod}
'clojure.core.async 'clojure.core.async

View file

@ -0,0 +1,25 @@
(ns babashka.pods.test-common)
(def test-program
"
(require '[babashka.pods :as pods])
(require '[clojure.core.async :as async])
(pods/load-pod [\"clojure\" \"-A:test-pod\" \"--run-as-pod\"])
(require '[pod.test-pod :as pod])
(def stream-results (atom []))
(let [chan (pod.test-pod/range-stream 1 10)]
(loop []
(when-let [x (async/<!! chan)]
(swap! stream-results conj x)
(recur))))
(def ex-result
(try (pod.test-pod/error 1 2 3)
(catch clojure.lang.ExceptionInfo e
(str (ex-message e) \" / \" (ex-data e)))))
(pod.test-pod/print \"hello\" \"print\" \"this\" \"debugging\" \"message\")
(pod.test-pod/print-err \"hello\" \"print\" \"this\" \"error\")
[(pod/assoc {:a 1} :b 2)
(pod.test-pod/add-sync 1 2 3)
@stream-results
ex-result]")