Skip to content

Commit ddd210f

Browse files
committed
switch to conjecture
1 parent fd25ff6 commit ddd210f

File tree

8 files changed

+88
-98
lines changed

8 files changed

+88
-98
lines changed

project.clj

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,16 @@
1616
[cheshire "5.0.2"]
1717
[crouton "0.1.1"]]
1818
:profiles {:dev {:dependencies [[org.clojure/clojure "1.5.0"]
19+
[name.stadig/conjecture "0.1.0"]
1920
[ring/ring-jetty-adapter "1.1.0"]
2021
[ring/ring-devel "1.1.0"]]}
2122
:1.2 {:dependencies [[org.clojure/clojure "1.2.1"]]}
2223
:1.3 {:dependencies [[org.clojure/clojure "1.3.0"]]}
2324
:1.4 {:dependencies [[org.clojure/clojure "1.4.0"]]}}
24-
:aliases {"all" ["with-profile" "dev,1.3:dev,1.4:dev"]}
25-
:plugins [[codox "0.6.3"]]
25+
:aliases {"test" "conjecture"
26+
"all" ["with-profile" "dev,1.3:dev,1.4:dev"]}
27+
:plugins [[codox "0.6.3"]
28+
[name.stadig/lein-conjecture "0.1.0"]]
2629
:test-selectors {:default #(not (:integration %))
2730
:integration :integration
2831
:all (constantly true)})

test/clj_http/test/client.clj

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,23 @@
11
(ns clj-http.test.client
2-
(:use [clojure.test]
3-
[clojure.java.io :only [resource]]
4-
[clj-http.test.core :only [run-server]])
2+
(:use [name.stadig.conjecture]
3+
[clojure.java.io :only [resource]])
54
(:require [clj-http.client :as client]
65
[clj-http.conn-mgr :as conn]
6+
[clj-http.test.support :as support]
77
[clj-http.util :as util]
88
[cheshire.core :as json])
99
(:import (java.net UnknownHostException)
1010
(java.util Arrays)
1111
(java.io ByteArrayInputStream)))
1212

13+
(use-fixtures :once support/server-fixture)
14+
1315
(def base-req
1416
{:scheme :http
1517
:server-name "localhost"
1618
:server-port 18080})
1719

1820
(deftest ^{:integration true} roundtrip
19-
(run-server)
2021
(Thread/sleep 1000)
2122
;; roundtrip with scheme as a keyword
2223
(let [resp (client/request (merge base-req {:uri "/get" :method :get}))]
@@ -490,7 +491,6 @@
490491
(:headers resp)))))
491492

492493
(deftest ^{:integration true} t-request-without-url-set
493-
(run-server)
494494
(Thread/sleep 1000)
495495
;; roundtrip with scheme as a keyword
496496
(let [resp (client/request (merge base-req {:uri "/redirect-to-get"
@@ -500,7 +500,6 @@
500500
(is (= "get" (:body resp)))))
501501

502502
(deftest ^{:integration true} t-reusable-conn-mgrs
503-
(run-server)
504503
(Thread/sleep 1000)
505504
(let [cm (conn/make-reusable-conn-manager {:timeout 10 :insecure? false})
506505
resp1 (client/request (merge base-req {:uri "/redirect-to-get"

test/clj_http/test/conn_mgr.clj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
(ns clj-http.test.conn-mgr
2-
(:use [clojure.test])
2+
(:use [name.stadig.conjecture])
33
(:require [clj-http.conn-mgr :as conn-mgr]
44
[clj-http.core :as core]
55
[ring.adapter.jetty :as ring])

test/clj_http/test/cookies.clj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
(ns clj-http.test.cookies
22
(:use [clj-http.cookies]
33
[clj-http.util]
4-
[clojure.test])
4+
[name.stadig.conjecture])
55
(:import (org.apache.http.impl.cookie BasicClientCookie BasicClientCookie2)))
66

77
(defn refer-private [ns]

test/clj_http/test/core.clj

Lines changed: 4 additions & 86 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
(ns clj-http.test.core
2-
(:use [clojure.test]
2+
(:use [name.stadig.conjecture]
33
[clojure.java.io :only [file]])
44
(:require [clojure.pprint :as pp]
55
[clj-http.client :as client]
66
[clj-http.core :as core]
7+
[clj-http.test.support :as support]
78
[clj-http.util :as util]
89
[cheshire.core :as json]
910
[ring.adapter.jetty :as ring])
@@ -14,63 +15,7 @@
1415
(org.apache.http.protocol HttpContext ExecutionContext)
1516
(org.apache.http.impl.client DefaultHttpClient)))
1617

17-
(defn handler [req]
18-
;;(pp/pprint req)
19-
;;(println) (println)
20-
(condp = [(:request-method req) (:uri req)]
21-
[:get "/get"]
22-
{:status 200 :body "get"}
23-
[:get "/clojure"]
24-
{:status 200 :body "{:foo \"bar\" :baz 7M :eggplant {:quux #{1 2 3}}}"
25-
:headers {"content-type" "application/clojure"}}
26-
[:get "/clojure-bad"]
27-
{:status 200 :body "{:foo \"bar\" :baz #=(+ 1 1)}"
28-
:headers {"content-type" "application/clojure"}}
29-
[:get "/json"]
30-
{:status 200 :body "{\"foo\":\"bar\"}"}
31-
[:get "/json-bad"]
32-
{:status 400 :body "{\"foo\":\"bar\"}"}
33-
[:get "/redirect"]
34-
{:status 302 :headers
35-
{"location" "http://localhost:18080/redirect"}}
36-
[:get "/redirect-to-get"]
37-
{:status 302 :headers
38-
{"location" "http://localhost:18080/get"}}
39-
[:head "/head"]
40-
{:status 200}
41-
[:get "/content-type"]
42-
{:status 200 :body (:content-type req)}
43-
[:get "/header"]
44-
{:status 200 :body (get-in req [:headers "x-my-header"])}
45-
[:post "/post"]
46-
{:status 200 :body (slurp (:body req))}
47-
[:get "/error"]
48-
{:status 500 :body "o noes"}
49-
[:get "/timeout"]
50-
(do
51-
(Thread/sleep 10)
52-
{:status 200 :body "timeout"})
53-
[:delete "/delete-with-body"]
54-
{:status 200 :body "delete-with-body"}
55-
[:post "/multipart"]
56-
{:status 200 :body (:body req)}
57-
[:get "/get-with-body"]
58-
{:status 200 :body (:body req)}
59-
[:options "/options"]
60-
{:status 200 :body "options"}
61-
[:copy "/copy"]
62-
{:status 200 :body "copy"}
63-
[:move "/move"]
64-
{:status 200 :body "move"}
65-
[:patch "/patch"]
66-
{:status 200 :body "patch"}
67-
[:get "/headers"]
68-
{:status 200 :body (json/encode (:headers req))}))
69-
70-
(defn run-server
71-
[]
72-
(defonce server
73-
(ring/run-jetty handler {:port 18080 :join? false})))
18+
(use-fixtures :once support/server-fixture)
7419

7520
(defn localhost [path]
7621
(str "http://localhost:18080" path))
@@ -87,19 +32,16 @@
8732
(slurp (:body req)))
8833

8934
(deftest ^{:integration true} makes-get-request
90-
(run-server)
9135
(let [resp (request {:request-method :get :uri "/get"})]
9236
(is (= 200 (:status resp)))
9337
(is (= "get" (slurp-body resp)))))
9438

9539
(deftest ^{:integration true} makes-head-request
96-
(run-server)
9740
(let [resp (request {:request-method :head :uri "/head"})]
9841
(is (= 200 (:status resp)))
9942
(is (nil? (:body resp)))))
10043

10144
(deftest ^{:integration true} sets-content-type-with-charset
102-
(run-server)
10345
(let [resp (client/request {:scheme :http
10446
:server-name "localhost"
10547
:server-port 18080
@@ -109,7 +51,6 @@
10951
(is (= "text/plain; charset=UTF-8" (:body resp)))))
11052

11153
(deftest ^{:integration true} sets-content-type-without-charset
112-
(run-server)
11354
(let [resp (client/request {:scheme :http
11455
:server-name "localhost"
11556
:server-port 18080
@@ -118,30 +59,25 @@
11859
(is (= "text/plain" (:body resp)))))
11960

12061
(deftest ^{:integration true} sets-arbitrary-headers
121-
(run-server)
12262
(let [resp (request {:request-method :get :uri "/header"
12363
:headers {"x-my-header" "header-val"}})]
12464
(is (= "header-val" (slurp-body resp)))))
12565

12666
(deftest ^{:integration true} sends-and-returns-byte-array-body
127-
(run-server)
12867
(let [resp (request {:request-method :post :uri "/post"
12968
:body (util/utf8-bytes "contents")})]
13069
(is (= 200 (:status resp)))
13170
(is (= "contents" (slurp-body resp)))))
13271

13372
(deftest ^{:integration true} returns-arbitrary-headers
134-
(run-server)
13573
(let [resp (request {:request-method :get :uri "/get"})]
13674
(is (string? (get-in resp [:headers "date"])))))
13775

13876
(deftest ^{:integration true} returns-status-on-exceptional-responses
139-
(run-server)
14077
(let [resp (request {:request-method :get :uri "/error"})]
14178
(is (= 500 (:status resp)))))
14279

14380
(deftest ^{:integration true} sets-socket-timeout
144-
(run-server)
14581
(try
14682
(is (thrown? java.net.SocketTimeoutException
14783
(client/request {:scheme :http
@@ -151,13 +87,12 @@
15187
:socket-timeout 1})))))
15288

15389
(deftest ^{:integration true} delete-with-body
154-
(run-server)
15590
(let [resp (request {:request-method :delete :uri "/delete-with-body"
15691
:body (.getBytes "foo bar")})]
15792
(is (= 200 (:status resp)))))
15893

15994
(deftest ^{:integration true} self-signed-ssl-get
160-
(let [t (doto (Thread. #(ring/run-jetty handler
95+
(let [t (doto (Thread. #(ring/run-jetty support/handler
16196
{:port 8081 :ssl-port 18082 :ssl? true
16297
:keystore "test-resources/keystore"
16398
:key-password "keykey"})) .start)]
@@ -177,7 +112,6 @@
177112
(.stop t)))))
178113

179114
(deftest ^{:integration true} multipart-form-uploads
180-
(run-server)
181115
(let [bytes (util/utf8-bytes "byte-test")
182116
stream (ByteArrayInputStream. bytes)
183117
resp (request {:request-method :post :uri "/multipart"
@@ -209,7 +143,6 @@
209143
(is (re-find #"content" resp-body))))
210144

211145
(deftest ^{:integration true} t-save-request-obj
212-
(run-server)
213146
(let [resp (request {:request-method :post :uri "/post"
214147
:body "foo bar"
215148
:save-request? true
@@ -248,7 +181,6 @@
248181
{"set-cookie" ["one" "two"] "server" "some-server"}))
249182

250183
(deftest ^{:integration true} t-streaming-response
251-
(run-server)
252184
(let [stream (:body (request {:request-method :get :uri "/get" :as :stream}))
253185
body (slurp stream)]
254186
(is (= "get" body))))
@@ -258,7 +190,6 @@
258190
(client/request {:method :bad :url "http://example.org"}))))
259191

260192
(deftest ^{:integration true} throw-on-too-many-redirects
261-
(run-server)
262193
(let [resp (client/get (localhost "/redirect")
263194
{:max-redirects 2 :throw-exceptions false})]
264195
(is (= 302 (:status resp)))
@@ -272,19 +203,16 @@
272203
{:throw-exceptions true}))))
273204

274205
(deftest ^{:integration true} get-with-body
275-
(run-server)
276206
(let [resp (request {:request-method :get :uri "/get-with-body"
277207
:body (.getBytes "foo bar")})]
278208
(is (= 200 (:status resp)))
279209
(is (= "foo bar" (String. (:body resp))))))
280210

281211
(deftest ^{:integration true} head-with-body
282-
(run-server)
283212
(let [resp (request {:request-method :head :uri "/head" :body "foo"})]
284213
(is (= 200 (:status resp)))))
285214

286215
(deftest ^{:integration true} t-clojure-output-coercion
287-
(run-server)
288216
(let [resp (client/get (localhost "/clojure") {:as :clojure})]
289217
(is (= 200 (:status resp)))
290218
(is (= {:foo "bar" :baz 7M :eggplant {:quux #{1 2 3}}} (:body resp))))
@@ -293,7 +221,6 @@
293221
(is (= {:foo "bar" :baz 7M :eggplant {:quux #{1 2 3}}} (:body resp)))))
294222

295223
(deftest ^{:integration true} t-json-output-coercion
296-
(run-server)
297224
(let [resp (client/get (localhost "/json") {:as :json})
298225
resp-str (client/get (localhost "/json")
299226
{:as :json :coerce :exceptional})
@@ -318,7 +245,6 @@
318245
(is (= "{\"foo\":\"bar\"}" (:body bad-resp-json2)))))
319246

320247
(deftest ^{:integration true} t-ipv6
321-
(run-server)
322248
(let [resp (client/get "http://[::1]:18080/get")]
323249
(is (= 200 (:status resp)))
324250
(is (= "get" (:body resp)))))
@@ -339,7 +265,6 @@
339265

340266
;; super-basic test for methods that aren't used that often
341267
(deftest ^{:integration true} t-copy-options-move
342-
(run-server)
343268
(let [resp1 (client/options (localhost "/options"))
344269
resp2 (client/move (localhost "/move"))
345270
resp3 (client/copy (localhost "/copy"))
@@ -351,15 +276,13 @@
351276
(is (= "patch" (:body resp4)))))
352277

353278
(deftest ^{:integration true} t-json-encoded-form-params
354-
(run-server)
355279
(let [params {:param1 "value1" :param2 {:foo "bar"}}
356280
resp (client/post (localhost "/post") {:content-type :json
357281
:form-params params})]
358282
(is (= 200 (:status resp)))
359283
(is (= (json/encode params) (:body resp)))))
360284

361285
(deftest ^{:integration true} t-response-interceptor
362-
(run-server)
363286
(let [saved-ctx (atom [])
364287
{:keys [status trace-redirects] :as resp}
365288
(client/get
@@ -376,7 +299,6 @@
376299
(is (every? #(instance? HttpConnection (:http-conn %)) @saved-ctx))))
377300

378301
(deftest ^{:integration true} t-send-input-stream-body
379-
(run-server)
380302
(let [b1 (:body (client/post "http://localhost:18080/post"
381303
{:body (ByteArrayInputStream. (.getBytes "foo"))
382304
:length 3}))
@@ -406,7 +328,6 @@
406328
;; This relies on connections to writequit.org being slower than 1ms, if this
407329
;; fails, you must have very nice internet.
408330
(deftest ^{:integration true} sets-conn-timeout
409-
(run-server)
410331
(try
411332
(is (thrown? org.apache.http.conn.ConnectTimeoutException
412333
(client/request {:scheme :https
@@ -417,7 +338,6 @@
417338
:conn-timeout 1})))))
418339

419340
(deftest ^{:integration true} connection-pool-timeout
420-
(run-server)
421341
(client/with-connection-pool {:timeout 1 :threads 1 :default-per-route 1}
422342
(let [async-request #(future (client/request {:scheme :http
423343
:server-name "localhost"
@@ -436,7 +356,6 @@
436356
(is (or timeout-error1 timeout-error2)))))
437357

438358
(deftest ^{:integration true} t-header-collections
439-
(run-server)
440359
(let [headers (-> (client/get "http://localhost:18080/headers"
441360
{:headers {"foo" ["bar" "baz"]
442361
"eggplant" "quux"}})
@@ -446,7 +365,6 @@
446365
(select-keys headers ["foo" "eggplant"])))))
447366

448367
(deftest ^{:integration true} t-clojure-no-read-eval
449-
(run-server)
450368
(is (thrown-with-msg?
451369
java.lang.RuntimeException
452370
#".*(EvalReader|eval reading) not allowed when \*read-eval\* is false.*"

test/clj_http/test/links.clj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
(ns clj-http.test.links
2-
(:use clojure.test
2+
(:use name.stadig.conjecture
33
clj-http.links))
44

55
(defn- link-handler [link-header]

0 commit comments

Comments
 (0)