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