mirror of
https://github.com/HoneyryderChuck/httpx.git
synced 2025-11-22 00:05:57 -05:00
Merge branch 'catlee/parallel_no_raise' into 'master'
Don't raise_for_status automatically in the Faraday adapter Closes #224 See merge request os85/httpx!232
This commit is contained in:
commit
36c840ba5c
@ -210,9 +210,12 @@ module Faraday
|
||||
if parallel?(env)
|
||||
handler = env[:parallel_manager].enqueue(env)
|
||||
handler.on_response do |response|
|
||||
response.raise_for_status
|
||||
save_response(env, response.status, response.body.to_s, response.headers, response.reason) do |response_headers|
|
||||
response_headers.merge!(response.headers)
|
||||
if response.is_a?(::HTTPX::Response)
|
||||
save_response(env, response.status, response.body.to_s, response.headers, response.reason) do |response_headers|
|
||||
response_headers.merge!(response.headers)
|
||||
end
|
||||
else
|
||||
save_response(env, 0, "", {}, nil)
|
||||
end
|
||||
end
|
||||
return handler
|
||||
@ -229,6 +232,7 @@ module Faraday
|
||||
request.response_on_data = env.request.on_data if env.request.stream_response?
|
||||
|
||||
response = session.request(request)
|
||||
# do not call #raise_for_status for HTTP 4xx or 5xx, as faraday has a middleware for that.
|
||||
response.raise_for_status unless response.is_a?(::HTTPX::Response)
|
||||
save_response(env, response.status, response.body.to_s, response.headers, response.reason) do |response_headers|
|
||||
response_headers.merge!(response.headers)
|
||||
|
||||
@ -29,6 +29,21 @@ class FaradayTest < Minitest::Test
|
||||
assert_equal "OK", resp2.reason_phrase
|
||||
end
|
||||
|
||||
def test_adapter_in_parallel_errors
|
||||
resp1 = nil
|
||||
|
||||
connection = create_connection
|
||||
connection.in_parallel do
|
||||
resp1 = connection.get("http://wfijojsfsoijf")
|
||||
assert connection.in_parallel?
|
||||
assert_nil resp1.reason_phrase
|
||||
end
|
||||
assert !connection.in_parallel?
|
||||
assert_equal 0, resp1.status
|
||||
assert_nil resp1.reason_phrase
|
||||
assert_equal "", resp1.body
|
||||
end
|
||||
|
||||
def test_adapter_get_handles_compression
|
||||
res = get(build_path("/gzip"))
|
||||
assert JSON.parse(res.body.to_s)["gzipped"]
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user