Libtest improvements

This commit is contained in:
Michiel Borkent 2020-09-21 10:56:33 +02:00
parent 8d53725439
commit d8e14c278d
6 changed files with 100 additions and 62 deletions

View file

@ -40,7 +40,7 @@
borkdude/spartan.spec {:git/url "https://github.com/borkdude/spartan.spec" borkdude/spartan.spec {:git/url "https://github.com/borkdude/spartan.spec"
:sha "16f7eec4b6589c77c96c9fcf989f78fffcee7c4c"} :sha "16f7eec4b6589c77c96c9fcf989f78fffcee7c4c"}
lambdaisland/regal {:git/url "https://github.com/lambdaisland/regal" lambdaisland/regal {:git/url "https://github.com/lambdaisland/regal"
:sha "b059fdb06d5586a9a04c27e7b011c467ad8546db"} :sha "f902d2c43121f9e1c48603d6eb99f5900eb6a9f6"}
weavejester/medley {:git/url "https://github.com/weavejester/medley" weavejester/medley {:git/url "https://github.com/weavejester/medley"
:sha "a4e5fb5383f5c0d83cb2d005181a35b76d8a136d"} :sha "a4e5fb5383f5c0d83cb2d005181a35b76d8a136d"}
babashka/babasha.curl {:local/root "babashka.curl"} babashka/babasha.curl {:local/root "babashka.curl"}

View file

@ -0,0 +1,25 @@
(ns babashka.curl-test
(:require [babashka.curl :as curl]
[cheshire.core :as json]
[clojure.test :as t :refer [deftest]]))
(deftest curl-test
(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}))))

View file

@ -0,0 +1,15 @@
(ns babashka.lambdaisland.regal-test
(:require [clojure.test :as t :refer [deftest is]]))
(prn :requiring :lambdaisland)
(require '[lambdaisland.regal :as regal])
(prn ::done :requiring :lambdaisland)
(def r [:cat
[:+ [:class [\a \z]]]
"="
[:+ [:not \=]]])
(deftest regal-test
(is (= "[a-z]+=[^=]+" (str (regal/regex r))))
(is (= "foo=bar" (re-matches (regal/regex r) "foo=bar"))))

View file

@ -8,57 +8,26 @@
(defn test-namespaces [& namespaces] (defn test-namespaces [& namespaces]
(let [namespaces (if (seq ns-args) (let [namespaces (if (seq ns-args)
(keep ns-args namespaces) (seq (keep ns-args namespaces))
namespaces)] namespaces)]
(prn namespaces) (when namespaces
(doseq [ns namespaces] (doseq [ns namespaces]
(require ns)) (require ns))
(let [m (apply t/run-tests namespaces)] (let [m (apply t/run-tests namespaces)]
(swap! status (fn [status] (swap! status (fn [status]
(merge-with + status (dissoc m :type))))))) (merge-with + status (dissoc m :type))))))))
;;;; clj-http-lite ;;;; clj-http-lite
(require '[clj-http.lite.client :as client]) (test-namespaces 'clj-http.lite.client-test)
(require '[cheshire.core :as json])
(prn (:status (client/get "https://www.clojure.org" {:throw-exceptions false})))
(prn (:status (client/get "https://postman-echo.com/get?foo1=bar1&foo2=bar2" {:throw-exceptions false})))
(prn (:status (client/post "https://postman-echo.com/post" {:throw-exceptions false})))
(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
:throw-exceptions false})))
(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
:throw-exceptions false})))
;;;; spartan.spec ;;;; spartan.spec
(time (require '[spartan.spec :as s])) (test-namespaces 'spartan.spec-test)
(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 ;;;; regal
(require '[lambdaisland.regal :as regal]) (test-namespaces 'babashka.lambdaisland.regal-test)
(def r [:cat
[:+ [:class [\a \z]]]
"="
[:+ [:not \=]]])
(prn (regal/regex r))
(prn (re-matches (regal/regex r) "foo=bar"))
;;;; medley ;;;; medley
@ -68,35 +37,20 @@
;;;; babashka.curl ;;;; babashka.curl
(require '[babashka.curl :as curl] :reload-all) (test-namespaces 'babashka.curl-test)
(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 ;;;; cprop
;; TODO: port to test-namespaces
(require '[cprop.core]) (require '[cprop.core])
(require '[cprop.source :refer [from-env]]) (require '[cprop.source :refer [from-env]])
(println (:cprop-env (from-env))) (println (:cprop-env (from-env)))
;;;; comb ;;;; comb
;; TODO: port to test-namespaces
(require '[comb.template :as template]) (require '[comb.template :as template])
(prn (template/eval "<% (dotimes [x 3] %>foo<% ) %>")) (prn (template/eval "<% (dotimes [x 3] %>foo<% ) %>"))
(prn (template/eval "Hello <%= name %>" {:name "Alice"})) (prn (template/eval "Hello <%= name %>" {:name "Alice"}))
@ -106,6 +60,8 @@
;;;; arrangement ;;;; arrangement
;; TODO: port to test-namespaces
(require '[arrangement.core :as order]) (require '[arrangement.core :as order])
(prn (sort order/rank ['a false 2 :b nil 3.14159 (prn (sort order/rank ['a false 2 :b nil 3.14159
"c" true \d [3 2] #{:one :two} "c" true \d [3 2] #{:one :two}
@ -117,12 +73,16 @@
;;;; clojure-csv ;;;; clojure-csv
;; TODO: port to test-namespaces
(require '[clojure-csv.core :as csv]) (require '[clojure-csv.core :as csv])
;; TODO: convert to test ;; TODO: convert to test
(prn (csv/write-csv (csv/parse-csv "a,b,c\n1,2,3"))) (prn (csv/write-csv (csv/parse-csv "a,b,c\n1,2,3")))
;;;; clojure.data.zip ;;;; clojure.data.zip
;; TODO: port to test-namespaces
(require '[clojure.data.xml :as xml]) (require '[clojure.data.xml :as xml])
(require '[clojure.zip :as zip]) (require '[clojure.zip :as zip])
(require '[clojure.data.zip.xml :refer [attr attr= xml1->]]) (require '[clojure.data.zip.xml :refer [attr attr= xml1->]])
@ -148,6 +108,9 @@
;;;; deps.clj ;;;; deps.clj
;; TODO: port to test-namespaces
(require '[babashka.curl :as curl])
(spit "deps_test.clj" (spit "deps_test.clj"
(:body (curl/get "https://raw.githubusercontent.com/borkdude/deps.clj/master/deps.clj"))) (:body (curl/get "https://raw.githubusercontent.com/borkdude/deps.clj/master/deps.clj")))

View file

@ -0,0 +1,25 @@
(ns clj-http.lite.client-test
(:require [cheshire.core :as json]
[clj-http.lite.client :as client]
[clojure.test :as t :refer [deftest]]))
(deftest client-test
(prn (:status (client/get "https://www.clojure.org" {:throw-exceptions false})))
(prn (:status (client/get "https://postman-echo.com/get?foo1=bar1&foo2=bar2" {:throw-exceptions false})))
(prn (:status (client/post "https://postman-echo.com/post" {:throw-exceptions false})))
(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
:throw-exceptions false})))
(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
:throw-exceptions false}))))

View file

@ -0,0 +1,10 @@
(ns spartan.spec-test
(:require [clojure.test :as t :refer [deftest is]]))
(time (require '[spartan.spec :as s]))
(require '[spartan.spec :as s])
(deftest spec-test
(time (s/explain (s/cat :i int? :s string?) [1 :foo]))
(is (time (s/conform (s/cat :i int? :s string?) [1 "foo"]))))