Skip to content

Commit db63f7e

Browse files
authored
test refactor: group all integration tests (#56)
All integration share same test fixture setup, so it makes sense to have them together. No need for ^integration metadata on tests any more, they are grouped by namespace now.
1 parent b51aff0 commit db63f7e

File tree

2 files changed

+73
-69
lines changed

2 files changed

+73
-69
lines changed

test/clj_http/lite/client_test.clj

Lines changed: 1 addition & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -1,59 +1,9 @@
11
(ns clj-http.lite.client-test
22
(:require [clj-http.lite.client :as client]
3-
[clj-http.lite.core-test :refer [base-req with-server current-port]]
43
[clj-http.lite.util :as util]
5-
[clojure.test :refer [deftest is testing use-fixtures]])
4+
[clojure.test :refer [deftest is testing]])
65
(:import (java.net UnknownHostException)))
76

8-
(use-fixtures :each with-server)
9-
10-
(deftest ^{:integration true} roundtrip
11-
;; roundtrip with scheme as a keyword
12-
(let [resp (client/request (merge (base-req) {:uri "/get" :method :get}))]
13-
(is (= 200 (:status resp)))
14-
(is (= "get" (:body resp))))
15-
;; roundtrip with scheme as a string
16-
(let [resp (client/request (merge (base-req) {:uri "/get"
17-
:method :get
18-
:scheme "http"}))]
19-
(is (= 200 (:status resp)))
20-
(is (= "get" (:body resp)))))
21-
22-
(deftest ^{:integration true} basic-auth-no-creds
23-
(let [resp (client/request (merge (base-req) {:method :get
24-
:uri "/basic-auth"
25-
:throw-exceptions false}))]
26-
(is (= 401 (:status resp)))
27-
(is (= "denied" (:body resp)))))
28-
29-
(deftest ^{:integration true} basic-auth-bad-creds
30-
(let [resp (client/request (merge (base-req) {:method :get
31-
:uri "/basic-auth"
32-
:throw-exceptions false
33-
:basic-auth "username:nope"}))]
34-
(is (= 401 (:status resp)))
35-
(is (= "denied" (:body resp)))))
36-
37-
(deftest ^{:integration true} basic-auth-creds-as-basic-auth
38-
(let [resp (client/request (merge (base-req) {:method :get
39-
:uri "/basic-auth"
40-
:basic-auth "username:password"}))]
41-
(is (= 200 (:status resp)))
42-
(is (= "welcome" (:body resp)))))
43-
44-
(deftest ^{:integration true} basic-auth-creds-as-user-info
45-
(let [resp (client/request (merge (base-req) {:method :get
46-
:uri "/basic-auth"
47-
:user-info "username:password"}))]
48-
(is (= 200 (:status resp)))
49-
(is (= "welcome" (:body resp)))))
50-
51-
(deftest ^{:integration true} basic-auth-creds-from-url
52-
(let [resp (client/request {:method :get
53-
:url (format "http://username:password@localhost:%d/basic-auth" (current-port))})]
54-
(is (= 200 (:status resp)))
55-
(is (= "welcome" (:body resp)))))
56-
577
(defn is-passed [middleware req]
588
(let [client (middleware identity)]
599
(is (= req (client req)))))

test/clj_http/lite/core_test.clj renamed to test/clj_http/lite/integration_test.clj

Lines changed: 72 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
(ns clj-http.lite.core-test
2-
(:require [clj-http.lite.core :as core]
1+
(ns clj-http.lite.integration-test
2+
(:require [clj-http.lite.client :as client]
3+
[clj-http.lite.core :as core]
34
[clj-http.lite.util :as util]
45
[clojure.test :refer [deftest is use-fixtures]]
56
[clojure.string :as str]
@@ -91,55 +92,58 @@
9192
(defn slurp-body [req]
9293
(slurp (:body req)))
9394

94-
(deftest ^{:integration true} makes-get-request
95+
;;
96+
;; Lower level internal unwrapped core requests
97+
;;
98+
(deftest makes-get-request
9599
(let [resp (request {:request-method :get :uri "/get"})]
96100
(is (= 200 (:status resp)))
97101
(is (= "get" (slurp-body resp)))))
98102

99-
(deftest ^{:integration true} makes-head-request
103+
(deftest makes-head-request
100104
(let [resp (request {:request-method :head :uri "/head"})]
101105
(is (= 200 (:status resp)))
102106
(is (nil? (:body resp)))))
103107

104-
(deftest ^{:integration true} sets-content-type-with-charset
108+
(deftest sets-content-type-with-charset
105109
(let [resp (request {:request-method :get :uri "/content-type"
106110
:content-type "text/plain" :character-encoding "UTF-8"})]
107111
(is (= "text/plain; charset=UTF-8" (slurp-body resp)))))
108112

109-
(deftest ^{:integration true} sets-content-type-without-charset
113+
(deftest sets-content-type-without-charset
110114
(let [resp (request {:request-method :get :uri "/content-type"
111115
:content-type "text/plain"})]
112116
(is (= "text/plain" (slurp-body resp)))))
113117

114-
(deftest ^{:integration true} sets-arbitrary-headers
118+
(deftest sets-arbitrary-headers
115119
(let [resp (request {:request-method :get :uri "/header"
116120
:headers {"X-My-Header" "header-val"}})]
117121
(is (= "header-val" (slurp-body resp)))))
118122

119-
(deftest ^{:integration true} sends-and-returns-byte-array-body
123+
(deftest sends-and-returns-byte-array-body
120124
(let [resp (request {:request-method :post :uri "/post"
121125
:body (util/utf8-bytes "contents")})]
122126
(is (= 200 (:status resp)))
123127
(is (= "contents" (slurp-body resp)))))
124128

125-
(deftest ^{:integration true} returns-arbitrary-headers
129+
(deftest returns-arbitrary-headers
126130
(let [resp (request {:request-method :get :uri "/get"})]
127131
(is (string? (get-in resp [:headers "date"])))))
128132

129-
(deftest ^{:integration true} returns-status-on-exceptional-responses
133+
(deftest returns-status-on-exceptional-responses
130134
(let [resp (request {:request-method :get :uri "/error"})]
131135
(is (= 500 (:status resp)))))
132136

133-
(deftest ^{:integration true} returns-status-on-redirect
137+
(deftest returns-status-on-redirect
134138
(let [resp (request {:request-method :get :uri "/redirect" :follow-redirects false})]
135139
(is (= 302 (:status resp)))))
136140

137-
(deftest ^{:integration true} auto-follows-on-redirect
141+
(deftest auto-follows-on-redirect
138142
(let [resp (request {:request-method :get :uri "/redirect"})]
139143
(is (= 200 (:status resp)))
140144
(is (= "get" (slurp-body resp)))))
141145

142-
(deftest ^{:integration true} sets-conn-timeout
146+
(deftest sets-conn-timeout
143147
;; indirect way of testing if a connection timeout will fail by passing in an
144148
;; invalid argument
145149
(try
@@ -148,21 +152,21 @@
148152
(catch Exception e
149153
(is (= IllegalArgumentException (class e))))))
150154

151-
(deftest ^{:integration true} sets-socket-timeout
155+
(deftest sets-socket-timeout
152156
(try
153157
(request {:request-method :get :uri "/timeout" :socket-timeout 1})
154158
(throw (Exception. "Shouldn't get here."))
155159
(catch Exception e
156160
(is (or (= java.net.SocketTimeoutException (class e))
157161
(= java.net.SocketTimeoutException (class (.getCause e))))))))
158162

159-
(deftest ^{:integration true} delete-with-body
163+
(deftest delete-with-body
160164
(let [resp (request {:request-method :delete :uri "/delete-with-body"
161165
:body (.getBytes "foo bar")})]
162166
(is (= 200 (:status resp)))
163167
(is (= "delete-with-body" (slurp-body resp)))))
164168

165-
(deftest ^{:integration true} self-signed-ssl-get
169+
(deftest self-signed-ssl-get
166170
(let [client-opts {:request-method :get
167171
:uri "/get"
168172
:scheme :https
@@ -177,7 +181,7 @@
177181
(request client-opts))
178182
"subsequent bad cert fetch throws")))
179183

180-
(deftest ^{:integration true} t-save-request-obj
184+
(deftest t-save-request-obj
181185
(let [resp (request {:request-method :post :uri "/post"
182186
:body (.getBytes "foo bar" "UTF-8")
183187
:save-request? true})]
@@ -192,7 +196,57 @@
192196
:request
193197
(dissoc :body))))))
194198

195-
(deftest ^{:integration true} t-streaming-response
199+
(deftest t-streaming-response
196200
(let [stream (:body (request {:request-method :get :uri "/get" :as :stream}))
197201
body (slurp stream)]
198202
(is (= "get" body))))
203+
204+
;;
205+
;; API level client wrapped requests
206+
;;
207+
(deftest roundtrip
208+
;; roundtrip with scheme as a keyword
209+
(let [resp (client/request (merge (base-req) {:uri "/get" :method :get}))]
210+
(is (= 200 (:status resp)))
211+
(is (= "get" (:body resp))))
212+
;; roundtrip with scheme as a string
213+
(let [resp (client/request (merge (base-req) {:uri "/get"
214+
:method :get
215+
:scheme "http"}))]
216+
(is (= 200 (:status resp)))
217+
(is (= "get" (:body resp)))))
218+
219+
(deftest basic-auth-no-creds
220+
(let [resp (client/request (merge (base-req) {:method :get
221+
:uri "/basic-auth"
222+
:throw-exceptions false}))]
223+
(is (= 401 (:status resp)))
224+
(is (= "denied" (:body resp)))))
225+
226+
(deftest basic-auth-bad-creds
227+
(let [resp (client/request (merge (base-req) {:method :get
228+
:uri "/basic-auth"
229+
:throw-exceptions false
230+
:basic-auth "username:nope"}))]
231+
(is (= 401 (:status resp)))
232+
(is (= "denied" (:body resp)))))
233+
234+
(deftest basic-auth-creds-as-basic-auth
235+
(let [resp (client/request (merge (base-req) {:method :get
236+
:uri "/basic-auth"
237+
:basic-auth "username:password"}))]
238+
(is (= 200 (:status resp)))
239+
(is (= "welcome" (:body resp)))))
240+
241+
(deftest basic-auth-creds-as-user-info
242+
(let [resp (client/request (merge (base-req) {:method :get
243+
:uri "/basic-auth"
244+
:user-info "username:password"}))]
245+
(is (= 200 (:status resp)))
246+
(is (= "welcome" (:body resp)))))
247+
248+
(deftest basic-auth-creds-from-url
249+
(let [resp (client/request {:method :get
250+
:url (format "http://username:password@localhost:%d/basic-auth" (current-port))})]
251+
(is (= 200 (:status resp)))
252+
(is (= "welcome" (:body resp)))))

0 commit comments

Comments
 (0)