From 376e9bd863e112c4866b7ddeaad4d24f37c3d9f7 Mon Sep 17 00:00:00 2001 From: rick Date: Fri, 11 Dec 2009 18:25:31 -0800 Subject: [PATCH] get parallel tests running on net/http (parallel methods are a no-op) --- lib/faraday.rb | 2 +- lib/faraday/adapter/net_http.rb | 3 ++- lib/faraday/adapter/typhoeus.rb | 4 +--- lib/faraday/connection.rb | 25 +++++++++++++++++++++++++ test/adapter/typhoeus_test.rb | 2 +- test/adapter_test.rb | 12 ++++++------ 6 files changed, 36 insertions(+), 12 deletions(-) diff --git a/lib/faraday.rb b/lib/faraday.rb index b2ccaba3..953c2964 100644 --- a/lib/faraday.rb +++ b/lib/faraday.rb @@ -19,7 +19,7 @@ module Faraday end def self.loaded_adapters - adapters.map { |c| const_get(c) }.select { |a| a.loaded } + adapters.map { |c| const_get(c) }.select { |a| a.loaded? } end end end diff --git a/lib/faraday/adapter/net_http.rb b/lib/faraday/adapter/net_http.rb index 71554bcc..370ed664 100644 --- a/lib/faraday/adapter/net_http.rb +++ b/lib/faraday/adapter/net_http.rb @@ -2,7 +2,8 @@ require 'net/http' module Faraday module Adapter module NetHttp - def self.loaded() true end + extend Faraday::Connection::Options + self.loaded = true def _get(uri, request_headers) http = Net::HTTP.new(uri.host, uri.port) diff --git a/lib/faraday/adapter/typhoeus.rb b/lib/faraday/adapter/typhoeus.rb index 877cd9b0..d8aa4cb5 100644 --- a/lib/faraday/adapter/typhoeus.rb +++ b/lib/faraday/adapter/typhoeus.rb @@ -2,9 +2,7 @@ module Faraday module Adapter module Typhoeus - class << self - attr_accessor :loaded - end + extend Faraday::Connection::Options begin require 'typhoeus' diff --git a/lib/faraday/connection.rb b/lib/faraday/connection.rb index 38943157..5433ce8a 100644 --- a/lib/faraday/connection.rb +++ b/lib/faraday/connection.rb @@ -1,6 +1,15 @@ require 'addressable/uri' module Faraday class Connection + module Options + def loaded() @loaded end + def loaded=(v) @loaded = v end + def supports_async() @supports_async end + def supports_async=(v) @supports_async = v end + alias loaded? loaded + alias supports_async? supports_async + end + include Addressable attr_accessor :host, :port, :scheme @@ -31,6 +40,22 @@ module Faraday @response_class || Response end + def in_parallel? + !!@parallel_manager + end + + def in_parallel(options = {}) + @parallel_manager = true + yield + @parallel_manager = false + end + + def setup_parallel_manager(options = {}) + end + + def run_parallel_requests + end + def path_prefix=(value) if value value.chomp! "/" diff --git a/test/adapter/typhoeus_test.rb b/test/adapter/typhoeus_test.rb index b1b4fda2..8aaae065 100644 --- a/test/adapter/typhoeus_test.rb +++ b/test/adapter/typhoeus_test.rb @@ -1,6 +1,6 @@ require File.expand_path(File.join(File.dirname(__FILE__), '..', 'helper')) -if Faraday::Adapter::Typhoeus.loaded +if Faraday::Adapter::Typhoeus.loaded? class TyphoeusTest < Faraday::TestCase describe "#parse_response_headers" do before do diff --git a/test/adapter_test.rb b/test/adapter_test.rb index 1cb401dd..443a2f1f 100644 --- a/test/adapter_test.rb +++ b/test/adapter_test.rb @@ -24,12 +24,10 @@ class AdapterTest < Faraday::TestCase assert_equal 'text/html', @connection.get('hello_world').headers['content-type'] end end - end - if Faraday::Adapter::Typhoeus.loaded - describe "async Typhoeus requests" do + describe "async requests" do before do - @connection.extend Faraday::Adapter::Typhoeus + @connection.extend adapter end it "clears parallel manager after running a single request" do @@ -47,8 +45,10 @@ class AdapterTest < Faraday::TestCase resp1 = @connection.get('json') resp2 = @connection.get('json') assert @connection.in_parallel? - assert_nil resp1.body - assert_nil resp2.body + if adapter.supports_async? + assert_nil resp1.body + assert_nil resp2.body + end end assert !@connection.in_parallel? assert_equal [1,2,3], resp1.body