Get rid of Python in tests

This commit is contained in:
Michiel Borkent 2019-12-23 11:12:20 +01:00 committed by GitHub
parent 0462c0fd61
commit 1835d7d219
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 24 additions and 15 deletions

View file

@ -7,7 +7,8 @@
[clojure.java.shell :refer [sh]]
[clojure.string :as str]
[clojure.test :as test :refer [deftest is testing]]
[sci.core :as sci]))
[sci.core :as sci]
[babashka.test-utils :as tu]))
(defn bb [input & args]
(edn/read-string (apply test-utils/bb (when (some? input) (str input)) (map str args))))
@ -170,7 +171,7 @@
(is (str/includes? (bb nil "
(def ls (-> (ProcessBuilder. [\"ls\"]) (.start)))
(def output (.getInputStream ls))
(.waitFor ls)
(assert (int? (.waitFor ls)))
(slurp output)")
"LICENSE")))
@ -185,19 +186,10 @@
temp-dir-path))))))
(deftest wait-for-port-test
(is (= :timed-out
(bb nil "(def ws (-> (ProcessBuilder. [\"python\" \"-m\" \"SimpleHTTPServer\" \"1777\"]) (.start)))
(wait/wait-for-port \"127.0.0.1\" 1777)
(.destroy ws)
(.waitFor ws)
(wait/wait-for-port \"localhost\" 1777 {:default :timed-out :timeout 50})")))
(is (int? (bb nil "
(require '[babashka.wait :as wait])
(def ws (-> (ProcessBuilder. [\"python\" \"-m\" \"SimpleHTTPServer\" \"1777\"]) (.start)))
(wait/wait-for-port \"localhost\" 1777)
(slurp \"http://localhost:1777\")
(.destroy ws)
(.waitFor ws)"))))
(let [server (tu/start-server! 1777)]
(is (= 1777 (:port (bb nil "(wait/wait-for-port \"127.0.0.1\" 1777)"))))
(tu/stop-server! server)
(is (= :timed-out (bb nil "(wait/wait-for-port \"127.0.0.1\" 1777 {:default :timed-out :timeout 50})")))))
(deftest wait-for-path-test
(let [temp-dir-path (System/getProperty "java.io.tmpdir")]

View file

@ -58,3 +58,20 @@
(if jvm?
(println "==== Testing JVM version")
(println "==== Testing native version"))
(defn socket-loop [^java.net.ServerSocket server]
(with-open [listener server]
(loop []
(with-open [socket (.accept listener)]
(let [input-stream (.getInputStream socket)]
(print (slurp input-stream))
(flush)))
(recur))))
(defn start-server! [port]
(let [server (java.net.ServerSocket. port)]
(future (socket-loop server))
server))
(defn stop-server! [^java.net.ServerSocket server]
(.close server))