Skip to content

Commit 937940d

Browse files
author
Jen Williams
committed
Allow maps to be directly consumed by load-test-suite (rather than suites being only defined in files)
1 parent 15f7980 commit 937940d

File tree

1 file changed

+18
-6
lines changed

1 file changed

+18
-6
lines changed

Diff for: src/rdf_validator/test_cases.clj

+18-6
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@
55
[com.stuartsierra.dependency :as dep]
66
[rdf-validator.util :as util])
77
(:import [java.io File]
8-
[java.net URL URI]))
8+
[java.net URL URI]
9+
(clojure.lang IPersistentMap)))
910

1011
(defprotocol Relatable
1112
(resolve-relative [this ^String relative]
@@ -25,7 +26,11 @@
2526
URL
2627
(resolve-relative [^URL url ^String relative]
2728
(let [^URI uri (resolve-relative (.toURI url) relative)]
28-
(.toURL uri))))
29+
(.toURL uri)))
30+
31+
IPersistentMap
32+
(resolve-relative [_m ^String relative]
33+
(io/resource relative)))
2934

3035
(defn- load-source-test
3136
"Loads a test definition from the specified data source. Infers the test type and name from the name of
@@ -126,12 +131,15 @@
126131
(map? suite) (update suite :tests #(vec (mapcat (fn [t] (normalise-tests source suite-name t)) %)))
127132
:else (throw (ex-info "Suite definition must be a vector or a map" {:suite suite}))))
128133

134+
(defn load-test-suite-map [m source]
135+
(into {} (map (fn [[suite-name suite]]
136+
[suite-name (normalise-suite source suite-name suite)])
137+
m)))
138+
129139
(defmethod load-source-test-suite :edn [source]
130140
(let [raw (read-edn-suite source)]
131141
(if (map? raw)
132-
(into {} (map (fn [[suite-name suite]]
133-
[suite-name (normalise-suite source suite-name suite)])
134-
raw))
142+
(load-test-suite-map raw source)
135143
(throw (ex-info "Root of test suite document must be a map" {:source source})))))
136144

137145
(defmethod load-source-test-suite :default [f]
@@ -153,7 +161,11 @@
153161

154162
URL
155163
(load-test-suite [url]
156-
(load-source-test-suite url)))
164+
(load-source-test-suite url))
165+
166+
IPersistentMap
167+
(load-test-suite [m]
168+
(load-test-suite-map m m)))
157169

158170
(defn- merge-raw-suite
159171
"Merges two raw test suite definition maps."

0 commit comments

Comments
 (0)