From 7733f7c70afa9cedf414dafabb2fe69d77b16d41 Mon Sep 17 00:00:00 2001 From: Frederick Cheung Date: Fri, 22 Jun 2012 16:26:42 +0100 Subject: [PATCH] fix errant use of net/http --- lib/fog/core/current_machine.rb | 6 +----- spec/core/current_machine_spec.rb | 18 ++++++++++++++---- spec/spec_helper.rb | 2 +- 3 files changed, 16 insertions(+), 10 deletions(-) diff --git a/lib/fog/core/current_machine.rb b/lib/fog/core/current_machine.rb index a46991857..32e6c39d1 100644 --- a/lib/fog/core/current_machine.rb +++ b/lib/fog/core/current_machine.rb @@ -1,5 +1,3 @@ -require 'net/http' -require 'uri' module Fog class CurrentMachine @@ -29,9 +27,7 @@ module Fog # @raise [Net::HTTPExceptions] if the net/http request fails. def self.ip_address @@lock.synchronize do - @@ip_address ||= Net::HTTP \ - .get_response(URI.parse(AMAZON_AWS_CHECK_IP)) \ - .body.chomp + @@ip_address ||= Excon.get(AMAZON_AWS_CHECK_IP).body.chomp end end end diff --git a/spec/core/current_machine_spec.rb b/spec/core/current_machine_spec.rb index 7ea0a8568..a22dfc268 100644 --- a/spec/core/current_machine_spec.rb +++ b/spec/core/current_machine_spec.rb @@ -3,10 +3,19 @@ require 'fog/core/current_machine' describe Fog::CurrentMachine do context '#ip_address' do - before(:each){ described_class.ip_address = nil } - + around(:each) do |example| + old_mock = Excon.defaults[:mock] + described_class.ip_address = nil + begin + Excon.defaults[:mock] = true + example.run + ensure + Excon.defaults[:mock] = false + Excon.stubs.clear + end + end it 'should be threadsafe' do - Net::HTTP.should_receive(:get_response).once{ Struct.new(:body).new('') } + Excon.stub({:method => :get, :path => '/'}, {:body => ''}) (1..10).map { Thread.new { described_class.ip_address } @@ -14,9 +23,10 @@ describe Fog::CurrentMachine do end it 'should remove trailing endline characters' do - Net::HTTP.stub(:get_response){ Struct.new(:body).new("192.168.0.1\n") } + Excon.stub({:method => :get, :path => '/'}, {:body => "192.168.0.1\n"}) described_class.ip_address.should == '192.168.0.1' end + end end diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 1dcc0f32e..2c0bb5920 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -1,4 +1,4 @@ -require 'spec' +require 'rspec' require 'open-uri' require 'fog' require 'fog/bin'