From fb0b88350a8a754985baa1acfaf12c6448bb8b9c Mon Sep 17 00:00:00 2001 From: rick Date: Sat, 21 Apr 2012 11:29:12 -0600 Subject: [PATCH] fix timeout test --- lib/faraday/adapter/rack.rb | 18 ++++++++++-------- test/adapters/rack_test.rb | 12 ++---------- 2 files changed, 12 insertions(+), 18 deletions(-) diff --git a/lib/faraday/adapter/rack.rb b/lib/faraday/adapter/rack.rb index 5784f036..d0ad97e6 100644 --- a/lib/faraday/adapter/rack.rb +++ b/lib/faraday/adapter/rack.rb @@ -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 diff --git a/test/adapters/rack_test.rb b/test/adapters/rack_test.rb index ca6a0c79..3865d76f 100644 --- a/test/adapters/rack_test.rb +++ b/test/adapters/rack_test.rb @@ -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