mirror of
https://github.com/lostisland/faraday.git
synced 2025-10-17 00:05:28 -04:00
fix timeout test
This commit is contained in:
parent
ebf201c8bf
commit
fb0b88350a
@ -16,14 +16,16 @@ module Faraday
|
|||||||
# conn.adapter :rack, MyRackApp
|
# conn.adapter :rack, MyRackApp
|
||||||
# end
|
# end
|
||||||
class Rack < Faraday::Adapter
|
class Rack < Faraday::Adapter
|
||||||
dependency 'rack/test'
|
dependency do
|
||||||
|
require 'rack/test'
|
||||||
|
|
||||||
begin
|
begin
|
||||||
require 'system_timer' if RUBY_VERSION < '1.9'
|
require 'system_timer' if RUBY_VERSION < '1.9'
|
||||||
rescue LoadError
|
rescue LoadError
|
||||||
warn "Faraday: you may want to install system_timer for reliable timeouts"
|
warn "Faraday: you may want to install system_timer for reliable timeouts"
|
||||||
ensure
|
ensure
|
||||||
SystemTimer = Timeout unless defined? ::SystemTimer
|
SystemTimer = Timeout unless defined? ::SystemTimer
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
# not prefixed with "HTTP_"
|
# not prefixed with "HTTP_"
|
||||||
@ -50,7 +52,7 @@ module Faraday
|
|||||||
|
|
||||||
timeout = env[:request][:timeout] || env[:request][:open_timeout]
|
timeout = env[:request][:timeout] || env[:request][:open_timeout]
|
||||||
response = if timeout
|
response = if timeout
|
||||||
SystemTimer.timeout(timeout) { execute_request(env, rack_env) }
|
SystemTimer.timeout(timeout, Faraday::Error::TimeoutError) { execute_request(env, rack_env) }
|
||||||
else
|
else
|
||||||
execute_request(env, rack_env)
|
execute_request(env, rack_env)
|
||||||
end
|
end
|
||||||
|
@ -17,17 +17,9 @@ module Adapters
|
|||||||
# not using shared test because error is swallowed by Sinatra
|
# not using shared test because error is swallowed by Sinatra
|
||||||
def test_timeout
|
def test_timeout
|
||||||
conn = create_connection(:request => {:timeout => 1, :open_timeout => 1})
|
conn = create_connection(:request => {:timeout => 1, :open_timeout => 1})
|
||||||
err = assert_raise { conn.get '/slow' }
|
assert_raise Faraday::Error::ClientError do
|
||||||
|
conn.get '/slow'
|
||||||
case err
|
|
||||||
when Faraday::Error::ClientError
|
|
||||||
# happens on Mac OS
|
|
||||||
assert_include err.response[:body], 'execution expired'
|
|
||||||
else
|
|
||||||
# happens on Travis
|
|
||||||
assert_instance_of Timeout::Error, err
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
Loading…
x
Reference in New Issue
Block a user