Merge testing of libs into one babashka process (#485)
This commit is contained in:
parent
4a126be2c6
commit
ee8508d320
24 changed files with 194 additions and 449 deletions
|
|
@ -22,7 +22,7 @@ jobs:
|
|||
git submodule update
|
||||
- restore_cache:
|
||||
keys:
|
||||
- v1-dependencies-{{ checksum "project.clj" }}
|
||||
- v1-dependencies-{{ checksum "project.clj" }}-{{ checksum "deps.edn" }}
|
||||
# fallback to using the latest cache if no exact match is found
|
||||
- v1-dependencies-
|
||||
- run:
|
||||
|
|
@ -63,7 +63,7 @@ jobs:
|
|||
- save_cache:
|
||||
paths:
|
||||
- ~/.m2
|
||||
key: v1-dependencies-{{ checksum "project.clj" }}
|
||||
key: v1-dependencies-{{ checksum "project.clj" }}-{{ checksum "deps.edn" }}
|
||||
linux:
|
||||
docker:
|
||||
- image: circleci/clojure:lein-2.9.1
|
||||
|
|
|
|||
26
deps.edn
26
deps.edn
|
|
@ -31,4 +31,28 @@
|
|||
:jvm-opts ["-Djdk.attach.allowAttachSelf"]
|
||||
:main-opts ["-m" "babashka.profile"]}
|
||||
:lib-tests
|
||||
{:extra-deps {minimallist {:mvn/version "0.0.1"}}}}}
|
||||
{:extra-deps {clj-http-lite
|
||||
{:git/url "https://github.com/babashka/clj-http-lite"
|
||||
:sha "f44ebe45446f0f44f2b73761d102af3da6d0a13e"}
|
||||
spartan.spec {:git/url "https://github.com/borkdude/spartan.spec"
|
||||
:sha "16f7eec4b6589c77c96c9fcf989f78fffcee7c4c"}
|
||||
regal {:git/url "https://github.com/lambdaisland/regal"
|
||||
:sha "b059fdb06d5586a9a04c27e7b011c467ad8546db"}
|
||||
medley {:git/url "https://github.com/weavejester/medley"
|
||||
:sha "a4e5fb5383f5c0d83cb2d005181a35b76d8a136d"}
|
||||
babasha.curl {:local/root "babashka.curl"}
|
||||
cprop {:mvn/version "0.1.16"}
|
||||
comb {:mvn/version "0.1.1"}
|
||||
mvxcvi/arrangement {:mvn/version "1.2.0"}
|
||||
org.clojure/data.zip {:mvn/version "1.0.0"}
|
||||
clojure-csv {:mvn/version "2.0.2"}
|
||||
org.clojure/math.combinatorics {:mvn/version "0.1.6"}
|
||||
doric {:mvn/version "0.9.0"}
|
||||
cljc.java-time
|
||||
{:git/url "https://github.com/henryw374/cljc.java-time.git"
|
||||
:sha "e3d184b78e933322b3fcaa6ca66cbb8f42a6b35c"}
|
||||
camel-snake-kebab {:mvn/version "0.4.1"}
|
||||
aero {:mvn/version "1.1.6"}
|
||||
org.clojure/data.generators {:mvn/version "1.0.0"}
|
||||
honeysql {:mvn/version "1.0.444"}
|
||||
minimallist {:mvn/version "0.0.1"}}}}}
|
||||
|
|
|
|||
|
|
@ -1,21 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -eo pipefail
|
||||
|
||||
if [ "$BABASHKA_TEST_ENV" = "native" ]; then
|
||||
BB_CMD="./bb"
|
||||
else
|
||||
BB_CMD="lein bb"
|
||||
fi
|
||||
|
||||
export BABASHKA_CLASSPATH
|
||||
BABASHKA_CLASSPATH=$(clojure -Sdeps '{:deps {aero {:mvn/version "1.1.6"}}}' -Spath)
|
||||
|
||||
$BB_CMD -cp "$BABASHKA_CLASSPATH:test-resources/lib_tests" -e "
|
||||
(require '[aero.core-test])
|
||||
(require '[clojure.test :as t])
|
||||
(let [{:keys [:test :pass :fail :error]} (t/run-tests 'aero.core-test)]
|
||||
(when-not (pos? test)
|
||||
(System/exit 1))
|
||||
(System/exit (+ fail error)))
|
||||
"
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -eo pipefail
|
||||
|
||||
export BABASHKA_CLASSPATH=$(clojure -Sdeps '{:deps {mvxcvi/arrangement {:mvn/version "1.2.0"}}}' -Spath)
|
||||
|
||||
if [ "$BABASHKA_TEST_ENV" = "native" ]; then
|
||||
BB_CMD="./bb"
|
||||
else
|
||||
BB_CMD="lein bb"
|
||||
fi
|
||||
|
||||
$BB_CMD -e "(require '[arrangement.core :as order]) (sort order/rank ['a false 2 :b nil 3.14159 \"c\" true \d [3 2] #{:one :two} [3 1 2] #{:three}])"
|
||||
|
|
@ -1,33 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -eo pipefail
|
||||
|
||||
export BABASHKA_CLASSPATH=$(clojure -Sdeps '{:deps {babasha.curl {:local/root "babashka.curl"}}}' -Spath)
|
||||
|
||||
if [ "$BABASHKA_TEST_ENV" = "native" ]; then
|
||||
BB_CMD="./bb"
|
||||
else
|
||||
BB_CMD="lein bb"
|
||||
fi
|
||||
|
||||
$BB_CMD -e "
|
||||
(require '[babashka.curl :as curl] :reload-all)
|
||||
|
||||
(prn (:status (curl/get \"https://www.clojure.org\")))
|
||||
|
||||
(prn (:status (curl/get \"https://postman-echo.com/get?foo1=bar1&foo2=bar2\")))
|
||||
|
||||
(prn (:status (curl/post \"https://postman-echo.com/post\")))
|
||||
|
||||
(prn (:status (curl/post \"https://postman-echo.com/post\"
|
||||
{:body (json/generate-string {:a 1})
|
||||
:headers {\"X-Hasura-Role\" \"admin\"}
|
||||
:content-type :json
|
||||
:accept :json})))
|
||||
|
||||
(prn (:status (curl/put \"https://postman-echo.com/put\"
|
||||
{:body (json/generate-string {:a 1})
|
||||
:headers {\"X-Hasura-Role\" \"admin\"}
|
||||
:content-type :json
|
||||
:accept :json})))
|
||||
"
|
||||
|
|
@ -1,21 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -eo pipefail
|
||||
|
||||
if [ "$BABASHKA_TEST_ENV" = "native" ]; then
|
||||
BB_CMD="./bb"
|
||||
else
|
||||
BB_CMD="lein bb"
|
||||
fi
|
||||
|
||||
export BABASHKA_CLASSPATH
|
||||
BABASHKA_CLASSPATH=$(clojure -Sdeps '{:deps {camel-snake-kebab {:mvn/version "0.4.1"}}}' -Spath)
|
||||
|
||||
$BB_CMD -cp "$BABASHKA_CLASSPATH:test-resources/lib_tests" -e "
|
||||
(require '[camel-snake-kebab.core-test])
|
||||
(require '[clojure.test :as t])
|
||||
(let [{:keys [:test :pass :fail :error]} (t/run-tests 'camel-snake-kebab.core-test)]
|
||||
(when-not (pos? test)
|
||||
(System/exit 1))
|
||||
(System/exit (+ fail error)))
|
||||
"
|
||||
|
|
@ -1,33 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -eo pipefail
|
||||
|
||||
export BABASHKA_CLASSPATH=$(clojure -Sdeps '{:deps {clj-http-lite {:git/url "https://github.com/babashka/clj-http-lite" :sha "f44ebe45446f0f44f2b73761d102af3da6d0a13e"}}}' -Spath)
|
||||
|
||||
if [ "$BABASHKA_TEST_ENV" = "native" ]; then
|
||||
BB_CMD="./bb"
|
||||
else
|
||||
BB_CMD="lein bb"
|
||||
fi
|
||||
|
||||
$BB_CMD -e "
|
||||
(require '[clj-http.lite.client :as client])
|
||||
|
||||
(prn (:status (client/get \"https://www.clojure.org\")))
|
||||
|
||||
(prn (:status (client/get \"https://postman-echo.com/get?foo1=bar1&foo2=bar2\")))
|
||||
|
||||
(prn (:status (client/post \"https://postman-echo.com/post\")))
|
||||
|
||||
(prn (:status (client/post \"https://postman-echo.com/post\"
|
||||
{:body (json/generate-string {:a 1})
|
||||
:headers {\"X-Hasura-Role\" \"admin\"}
|
||||
:content-type :json
|
||||
:accept :json})))
|
||||
|
||||
(prn (:status (client/put \"https://postman-echo.com/put\"
|
||||
{:body (json/generate-string {:a 1})
|
||||
:headers {\"X-Hasura-Role\" \"admin\"}
|
||||
:content-type :json
|
||||
:accept :json})))
|
||||
"
|
||||
|
|
@ -1,19 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -eo pipefail
|
||||
|
||||
if [ "$BABASHKA_TEST_ENV" = "native" ]; then
|
||||
BB_CMD="./bb"
|
||||
else
|
||||
BB_CMD="lein bb"
|
||||
fi
|
||||
|
||||
$BB_CMD -cp test-resources/lib_tests -e "
|
||||
(require '[clojure.java.io :as io])
|
||||
(require '[clj-yaml.core-test])
|
||||
(require '[clojure.test :as t])
|
||||
(let [{:keys [:test :pass :fail :error]} (t/run-tests 'clj-yaml.core-test)]
|
||||
(when-not (pos? test)
|
||||
(System/exit 1))
|
||||
(System/exit (+ fail error)))
|
||||
"
|
||||
|
|
@ -1,22 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -eo pipefail
|
||||
|
||||
if [ "$BABASHKA_TEST_ENV" = "native" ]; then
|
||||
BB_CMD="./bb"
|
||||
else
|
||||
BB_CMD="lein bb"
|
||||
fi
|
||||
|
||||
export BABASHKA_CLASSPATH
|
||||
BABASHKA_CLASSPATH="$(clojure -Sdeps '{:deps {cljc.java-time {:git/url "https://github.com/henryw374/cljc.java-time.git" :sha "e3d184b78e933322b3fcaa6ca66cbb8f42a6b35c"}}}' -Spath)"
|
||||
|
||||
$BB_CMD -cp "$BABASHKA_CLASSPATH:test-resources/lib_tests" -e "
|
||||
(require '[clojure.java.io :as io])
|
||||
(require '[cljc.java-time-test])
|
||||
(require '[clojure.test :as t])
|
||||
(let [{:keys [:test :pass :fail :error]} (t/run-tests 'cljc.java-time-test)]
|
||||
(when-not (pos? test)
|
||||
(System/exit 1))
|
||||
(System/exit (+ fail error)))
|
||||
"
|
||||
|
|
@ -1,16 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -eo pipefail
|
||||
|
||||
export BABASHKA_CLASSPATH="$(clojure -Sdeps '{:deps {clojure-csv {:mvn/version "RELEASE"}}}' -Spath)"
|
||||
|
||||
if [ "$BABASHKA_TEST_ENV" = "native" ]; then
|
||||
BB_CMD="./bb"
|
||||
else
|
||||
BB_CMD="lein bb"
|
||||
fi
|
||||
|
||||
$BB_CMD -e "
|
||||
(require '[clojure-csv.core :as csv])
|
||||
(prn (csv/write-csv (csv/parse-csv \"a,b,c\n1,2,3\")))
|
||||
"
|
||||
|
|
@ -1,19 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -eo pipefail
|
||||
|
||||
if [ "$BABASHKA_TEST_ENV" = "native" ]; then
|
||||
BB_CMD="./bb"
|
||||
else
|
||||
BB_CMD="lein bb"
|
||||
fi
|
||||
|
||||
$BB_CMD -cp test-resources/lib_tests -e "
|
||||
(require '[clojure.java.io :as io])
|
||||
(require '[clojure.data.csv-test])
|
||||
(require '[clojure.test :as t])
|
||||
(let [{:keys [:test :pass :fail :error]} (t/run-tests 'clojure.data.csv-test)]
|
||||
(when-not (pos? test)
|
||||
(System/exit 1))
|
||||
(System/exit (+ fail error)))
|
||||
"
|
||||
|
|
@ -1,21 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -eo pipefail
|
||||
|
||||
if [ "$BABASHKA_TEST_ENV" = "native" ]; then
|
||||
BB_CMD="./bb"
|
||||
else
|
||||
BB_CMD="lein bb"
|
||||
fi
|
||||
|
||||
export BABASHKA_CLASSPATH
|
||||
BABASHKA_CLASSPATH=$(clojure -Sdeps '{:deps {org.clojure/data.generators {:mvn/version "1.0.0"}}}' -Spath)
|
||||
|
||||
$BB_CMD -cp "$BABASHKA_CLASSPATH:test-resources/lib_tests" -e "
|
||||
(require '[clojure.data.generators-test])
|
||||
(require '[clojure.test :as t])
|
||||
(let [{:keys [:test :pass :fail :error]} (t/run-tests 'clojure.data.generators-test)]
|
||||
(when-not (pos? test)
|
||||
(System/exit 1))
|
||||
(System/exit (+ fail error)))
|
||||
"
|
||||
|
|
@ -1,28 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -eo pipefail
|
||||
|
||||
export BABASHKA_CLASSPATH="$(clojure -Sdeps '{:deps {org.clojure/data.zip {:mvn/version "1.0.0"}}}' -Spath)"
|
||||
|
||||
if [ "$BABASHKA_TEST_ENV" = "native" ]; then
|
||||
BB_CMD="./bb"
|
||||
else
|
||||
BB_CMD="lein bb"
|
||||
fi
|
||||
|
||||
$BB_CMD --verbose "
|
||||
(require '[clojure.data.xml :as xml])
|
||||
(require '[clojure.zip :as zip])
|
||||
(require '[clojure.data.zip.xml :refer [text attr attr= xml-> xml1-> text=]])
|
||||
|
||||
(def data (str \"<root>\"
|
||||
\" <character type=\\\"person\\\" name=\\\"alice\\\" />\"
|
||||
\" <character type=\\\"animal\\\" name=\\\"march hare\\\" />\"
|
||||
\"</root>\"))
|
||||
|
||||
;(prn :data data)
|
||||
(let [xml (zip/xml-zip (xml/parse (java.io.StringReader. data)))]
|
||||
;(prn :xml xml)
|
||||
(prn :alice-is-a (xml1-> xml :character [(attr= :name \"alice\")] (attr :type)))
|
||||
(prn :animal-is-called (xml1-> xml :character [(attr= :type \"animal\")] (attr :name))))
|
||||
"
|
||||
|
|
@ -1,21 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -eo pipefail
|
||||
|
||||
export BABASHKA_CLASSPATH=$(clojure -Spath -Sdeps '{:deps {comb {:mvn/version "0.1.1"}}}')
|
||||
|
||||
if [ "$BABASHKA_TEST_ENV" = "native" ]; then
|
||||
BB_CMD="./bb"
|
||||
else
|
||||
BB_CMD="lein bb"
|
||||
fi
|
||||
|
||||
|
||||
$BB_CMD '
|
||||
(ns foo (:require [comb.template :as template]))
|
||||
(prn (template/eval "<% (dotimes [x 3] %>foo<% ) %>"))
|
||||
(prn (template/eval "Hello <%= name %>" {:name "Alice"}))
|
||||
(def hello
|
||||
(template/fn [name] "Hello <%= name %>"))
|
||||
(prn (hello "Alice"))
|
||||
'
|
||||
|
|
@ -1,20 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -eo pipefail
|
||||
|
||||
export BABASHKA_CLASSPATH=$(clojure -Sdeps '{:deps {org.clojure/math.combinatorics {:mvn/version "0.1.6"}}}' -Spath)
|
||||
|
||||
if [ "$BABASHKA_TEST_ENV" = "native" ]; then
|
||||
BB_CMD="./bb"
|
||||
else
|
||||
BB_CMD="lein bb"
|
||||
fi
|
||||
|
||||
$BB_CMD -cp "test-resources/lib_tests:$BABASHKA_CLASSPATH" -e "
|
||||
(require '[clojure.math.test-combinatorics])
|
||||
(require '[clojure.test :as t])
|
||||
(let [{:keys [:test :pass :fail :error]} (t/run-tests 'clojure.math.test-combinatorics)]
|
||||
(when-not (pos? test)
|
||||
(System/exit 1))
|
||||
(System/exit (+ fail error)))
|
||||
"
|
||||
|
|
@ -1,18 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -eo pipefail
|
||||
|
||||
export BABASHKA_CLASSPATH=$(clojure -Spath -Sdeps '{:deps {cprop {:mvn/version "0.1.16"}}}')
|
||||
|
||||
if [ "$BABASHKA_TEST_ENV" = "native" ]; then
|
||||
BB_CMD="./bb"
|
||||
else
|
||||
BB_CMD="lein bb"
|
||||
fi
|
||||
|
||||
|
||||
CPROP_ENV="hello" $BB_CMD "
|
||||
(require '[cprop.core :refer [load-config]])
|
||||
(require '[cprop.source :refer [from-system-props from-env]])
|
||||
(println (:cprop-env (from-env)))
|
||||
"
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -eo pipefail
|
||||
|
||||
if [ "$BABASHKA_TEST_ENV" = "native" ]; then
|
||||
BB_CMD="./bb"
|
||||
else
|
||||
BB_CMD="lein bb"
|
||||
fi
|
||||
|
||||
curl -sL https://raw.githubusercontent.com/borkdude/deps.clj/master/deps.clj -o deps_test.clj
|
||||
chmod +x deps_test.clj
|
||||
$BB_CMD deps_test.clj -Sdescribe
|
||||
rm deps_test.clj
|
||||
|
||||
|
|
@ -1,21 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -eo pipefail
|
||||
|
||||
export BABASHKA_CLASSPATH
|
||||
BABASHKA_CLASSPATH="$(clojure -Spath -Sdeps '{:deps {doric {:mvn/version "0.9.0"}}}')"
|
||||
|
||||
if [ "$BABASHKA_TEST_ENV" = "native" ]; then
|
||||
BB_CMD="./bb"
|
||||
else
|
||||
BB_CMD="lein bb"
|
||||
fi
|
||||
|
||||
$BB_CMD -cp "$BABASHKA_CLASSPATH:test-resources/lib_tests" -e "
|
||||
(require '[doric.test.core])
|
||||
(require '[clojure.test :as t])
|
||||
(let [{:keys [:test :pass :fail :error]} (t/run-tests 'doric.test.core)]
|
||||
(when-not (pos? test)
|
||||
(System/exit 1))
|
||||
(System/exit (+ fail error)))
|
||||
"
|
||||
|
|
@ -1,24 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -eo pipefail
|
||||
|
||||
if [ "$BABASHKA_TEST_ENV" = "native" ]; then
|
||||
BB_CMD="./bb"
|
||||
else
|
||||
BB_CMD="lein bb"
|
||||
fi
|
||||
|
||||
export BABASHKA_CLASSPATH
|
||||
BABASHKA_CLASSPATH=$(clojure -Sdeps '{:deps {honeysql {:mvn/version "1.0.444"}}}' -Spath)
|
||||
|
||||
$BB_CMD -cp "$BABASHKA_CLASSPATH:test-resources/lib_tests" -e "
|
||||
(require '[honeysql.core-test])
|
||||
(require '[honeysql.format-test])
|
||||
(require '[clojure.test :as t])
|
||||
|
||||
(let [{:keys [:test :pass :fail :error]}
|
||||
(t/run-tests 'honeysql.core-test 'honeysql.format-test)]
|
||||
(when-not (pos? test)
|
||||
(System/exit 1))
|
||||
(System/exit (+ fail error)))
|
||||
"
|
||||
|
|
@ -1,17 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -eo pipefail
|
||||
|
||||
export BABASHKA_CLASSPATH="$(clojure -Sdeps '{:deps {medley {:git/url "https://github.com/weavejester/medley" :sha "a4e5fb5383f5c0d83cb2d005181a35b76d8a136d"}}}' -Spath)"
|
||||
|
||||
if [ "$BABASHKA_TEST_ENV" = "native" ]; then
|
||||
BB_CMD="./bb"
|
||||
else
|
||||
BB_CMD="lein bb"
|
||||
fi
|
||||
|
||||
$BB_CMD "
|
||||
(require '[medley.core :refer [index-by random-uuid]])
|
||||
(prn (index-by :id [{:id 1} {:id 2}]))
|
||||
(prn (random-uuid))
|
||||
"
|
||||
|
|
@ -1,22 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -eo pipefail
|
||||
|
||||
export BABASHKA_CLASSPATH="$(clojure -Sdeps '{:deps {regal {:git/url "https://github.com/lambdaisland/regal" :sha "b059fdb06d5586a9a04c27e7b011c467ad8546db"}}}' -Spath)"
|
||||
|
||||
if [ "$BABASHKA_TEST_ENV" = "native" ]; then
|
||||
BB_CMD="./bb"
|
||||
else
|
||||
BB_CMD="lein bb"
|
||||
fi
|
||||
|
||||
$BB_CMD "
|
||||
(require '[lambdaisland.regal :as regal])
|
||||
(def r [:cat
|
||||
[:+ [:class [\a \z]]]
|
||||
\"=\"
|
||||
[:+ [:not \=]]])
|
||||
|
||||
(prn (regal/regex r))
|
||||
(prn (re-matches (regal/regex r) \"foo=bar\"))
|
||||
"
|
||||
|
|
@ -1,17 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -eo pipefail
|
||||
|
||||
export BABASHKA_CLASSPATH=$(clojure -Sdeps '{:deps {spartan.spec {:git/url "https://github.com/borkdude/spartan.spec" :sha "16f7eec4b6589c77c96c9fcf989f78fffcee7c4c"}}}' -Spath)
|
||||
|
||||
if [ "$BABASHKA_TEST_ENV" = "native" ]; then
|
||||
BB_CMD="./bb"
|
||||
else
|
||||
BB_CMD="lein bb"
|
||||
fi
|
||||
|
||||
$BB_CMD -e "
|
||||
(time (require '[spartan.spec :as s]))
|
||||
(time (s/explain (s/cat :i int? :s string?) [1 :foo]))
|
||||
(time (s/conform (s/cat :i int? :s string?) [1 \"foo\"]))
|
||||
"
|
||||
|
|
@ -8,24 +8,4 @@ then
|
|||
export PATH=$GRAALVM_HOME/bin:$PATH
|
||||
fi
|
||||
|
||||
script/lib_tests/clj_http_lite_test
|
||||
script/lib_tests/deps_clj_test
|
||||
script/lib_tests/spartan_spec_test
|
||||
script/lib_tests/clojure_csv_test
|
||||
script/lib_tests/regal_test
|
||||
script/lib_tests/medley_test
|
||||
script/lib_tests/babashka_curl_test
|
||||
script/lib_tests/cprop_test
|
||||
script/lib_tests/comb_test
|
||||
script/lib_tests/arrangement_test
|
||||
script/lib_tests/clj_yaml_test
|
||||
script/lib_tests/clojure_data_csv_test
|
||||
script/lib_tests/combinatorics_test
|
||||
script/lib_tests/doric_test
|
||||
script/lib_tests/clojure_data_zip_test
|
||||
script/lib_tests/cljc_java_time_test
|
||||
script/lib_tests/camel_snake_kebab_test
|
||||
script/lib_tests/aero_test
|
||||
script/lib_tests/clojure_data_generators_test
|
||||
script/lib_tests/honeysql_test
|
||||
script/lib_tests/run_all_libtests
|
||||
|
|
|
|||
|
|
@ -1,20 +1,182 @@
|
|||
(ns babashka.run-all-libtests
|
||||
(:require [clojure.test :as t]))
|
||||
(:require [clojure.test :as t]
|
||||
[clojure.java.io :as io]))
|
||||
|
||||
(def status (atom {}))
|
||||
|
||||
(defn test-namespaces [& namespaces]
|
||||
(doseq [ns namespaces]
|
||||
(require ns))
|
||||
(let [m (apply t/run-tests namespaces)]
|
||||
(swap! status (fn [status]
|
||||
(merge-with + status m)))))
|
||||
(merge-with + status (dissoc m :type))))))
|
||||
|
||||
;;;; Minimallist
|
||||
;;;; clj-http-lite
|
||||
|
||||
(require '[minimallist.core-test])
|
||||
(require '[clj-http.lite.client :as client])
|
||||
(require '[cheshire.core :as json])
|
||||
|
||||
(prn (:status (client/get "https://www.clojure.org")))
|
||||
|
||||
(prn (:status (client/get "https://postman-echo.com/get?foo1=bar1&foo2=bar2")))
|
||||
|
||||
(prn (:status (client/post "https://postman-echo.com/post")))
|
||||
|
||||
(prn (:status (client/post "https://postman-echo.com/post"
|
||||
{:body (json/generate-string {:a 1})
|
||||
:headers {"X-Hasura-Role" "admin"}
|
||||
:content-type :json
|
||||
:accept :json})))
|
||||
|
||||
(prn (:status (client/put "https://postman-echo.com/put"
|
||||
{:body (json/generate-string {:a 1})
|
||||
:headers {"X-Hasura-Role" "admin"}
|
||||
:content-type :json
|
||||
:accept :json})))
|
||||
|
||||
;;;; spartan.spec
|
||||
|
||||
(time (require '[spartan.spec :as s]))
|
||||
(require '[spartan.spec :as s])
|
||||
(time (s/explain (s/cat :i int? :s string?) [1 :foo]))
|
||||
(time (s/conform (s/cat :i int? :s string?) [1 "foo"]))
|
||||
|
||||
;;;; regal
|
||||
|
||||
(require '[lambdaisland.regal :as regal])
|
||||
(def r [:cat
|
||||
[:+ [:class [\a \z]]]
|
||||
"="
|
||||
[:+ [:not \=]]])
|
||||
|
||||
(prn (regal/regex r))
|
||||
(prn (re-matches (regal/regex r) "foo=bar"))
|
||||
|
||||
;;;; medley
|
||||
|
||||
(require '[medley.core :refer [index-by random-uuid]])
|
||||
(prn (index-by :id [{:id 1} {:id 2}]))
|
||||
(prn (random-uuid))
|
||||
|
||||
;;;; babashka.curl
|
||||
|
||||
(require '[babashka.curl :as curl] :reload-all)
|
||||
|
||||
(prn (:status (curl/get "https://www.clojure.org")))
|
||||
|
||||
(prn (:status (curl/get "https://postman-echo.com/get?foo1=bar1&foo2=bar2")))
|
||||
|
||||
(prn (:status (curl/post "https://postman-echo.com/post")))
|
||||
|
||||
(prn (:status (curl/post "https://postman-echo.com/post"
|
||||
{:body (json/generate-string {:a 1})
|
||||
:headers {"X-Hasura-Role" "admin"}
|
||||
:content-type :json
|
||||
:accept :json})))
|
||||
|
||||
(prn (:status (curl/put "https://postman-echo.com/put"
|
||||
{:body (json/generate-string {:a 1})
|
||||
:headers {"X-Hasura-Role" "admin"}
|
||||
:content-type :json
|
||||
:accept :json})))
|
||||
|
||||
|
||||
;;;; cprop
|
||||
|
||||
(require '[cprop.core])
|
||||
(require '[cprop.source :refer [from-env]])
|
||||
(println (:cprop-env (from-env)))
|
||||
|
||||
;;;; comb
|
||||
|
||||
(require '[comb.template :as template])
|
||||
(prn (template/eval "<% (dotimes [x 3] %>foo<% ) %>"))
|
||||
(prn (template/eval "Hello <%= name %>" {:name "Alice"}))
|
||||
(def hello
|
||||
(template/fn [name] "Hello <%= name %>"))
|
||||
(prn (hello "Alice"))
|
||||
|
||||
;;;; arrangement
|
||||
|
||||
(require '[arrangement.core :as order])
|
||||
(prn (sort order/rank ['a false 2 :b nil 3.14159
|
||||
"c" true \d [3 2] #{:one :two}
|
||||
[3 1 2] #{:three}]))
|
||||
|
||||
;;;; clj-yaml
|
||||
|
||||
(test-namespaces 'clj-yaml.core-test)
|
||||
|
||||
;;;; clojure-csv
|
||||
|
||||
(require '[clojure-csv.core :as csv])
|
||||
;; TODO: convert to test
|
||||
(prn (csv/write-csv (csv/parse-csv "a,b,c\n1,2,3")))
|
||||
|
||||
;;;; clojure.data.zip
|
||||
|
||||
(require '[clojure.data.xml :as xml])
|
||||
(require '[clojure.zip :as zip])
|
||||
(require '[clojure.data.zip.xml :refer [attr attr= xml1->]])
|
||||
|
||||
(def data (str "<root>"
|
||||
" <character type=\"person\" name=\"alice\" />"
|
||||
" <character type=\"animal\" name=\"march hare\" />"
|
||||
"</root>"))
|
||||
|
||||
;; TODO: convert to test
|
||||
(let [xml (zip/xml-zip (xml/parse (java.io.StringReader. data)))]
|
||||
;(prn :xml xml)
|
||||
(prn :alice-is-a (xml1-> xml :character [(attr= :name "alice")] (attr :type)))
|
||||
(prn :animal-is-called (xml1-> xml :character [(attr= :type "animal")] (attr :name))))
|
||||
|
||||
;;;; clojure.data.csv
|
||||
|
||||
(test-namespaces 'clojure.data.csv-test)
|
||||
|
||||
;;;; clojure.math.combinatorics
|
||||
|
||||
(test-namespaces 'clojure.math.test-combinatorics)
|
||||
|
||||
;;;; deps.clj
|
||||
|
||||
(spit "deps_test.clj"
|
||||
(:body (curl/get "https://raw.githubusercontent.com/borkdude/deps.clj/master/deps.clj")))
|
||||
|
||||
(binding [*command-line-args* ["-Sdescribe"]]
|
||||
(load-file "deps_test.clj"))
|
||||
|
||||
(.delete (io/file "deps_test.clj"))
|
||||
|
||||
;;;; doric
|
||||
|
||||
(test-namespaces 'doric.test.core)
|
||||
|
||||
;;;; cljc-java-time
|
||||
|
||||
(test-namespaces 'cljc.java-time-test)
|
||||
|
||||
;;;; camel-snake-kebab
|
||||
|
||||
(test-namespaces 'camel-snake-kebab.core-test)
|
||||
|
||||
;;;; aero
|
||||
|
||||
(test-namespaces 'aero.core-test)
|
||||
|
||||
;;;; clojure.data.generators
|
||||
|
||||
(test-namespaces 'clojure.data.generators-test)
|
||||
|
||||
;;;; honeysql
|
||||
|
||||
(test-namespaces 'honeysql.core-test 'honeysql.format-test)
|
||||
|
||||
;;;; minimallist
|
||||
|
||||
(test-namespaces 'minimallist.core-test)
|
||||
|
||||
;;;; Final exit code
|
||||
;;;; final exit code
|
||||
|
||||
(let [{:keys [:test :fail :error] :as m} @status]
|
||||
(prn m)
|
||||
|
|
|
|||
Loading…
Reference in a new issue