From 1d6b66023659cc41fb438ce5d83de2ee7e7f94fb Mon Sep 17 00:00:00 2001 From: Tom Werner Date: Mon, 8 Oct 2007 17:07:28 -0700 Subject: [PATCH] rescue connection refused in http response code condition --- lib/god/conditions/http_response_code.rb | 2 ++ test/test_conditions_http_response_code.rb | 15 +++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/lib/god/conditions/http_response_code.rb b/lib/god/conditions/http_response_code.rb index dd14c6e..c1c0d85 100644 --- a/lib/god/conditions/http_response_code.rb +++ b/lib/god/conditions/http_response_code.rb @@ -61,6 +61,8 @@ module God else fail(actual_response_code) end + rescue Errno::ECONNREFUSED + self.code_is ? fail('Refused') : pass('Refused') rescue Timeout::Error self.code_is ? fail('Timeout') : pass('Timeout') end diff --git a/test/test_conditions_http_response_code.rb b/test/test_conditions_http_response_code.rb index e0c9b44..daa2989 100644 --- a/test/test_conditions_http_response_code.rb +++ b/test/test_conditions_http_response_code.rb @@ -104,6 +104,21 @@ class TestHttpResponseCode < Test::Unit::TestCase assert_equal true, c.test end + def test_test_should_return_false_if_code_is_is_set_to_200_but_cant_connect + c = valid_condition + Net::HTTP.expects(:start).raises(Errno::ECONNREFUSED, '') + assert_equal false, c.test + end + + def test_test_should_return_true_if_code_is_not_is_set_to_200_and_cant_connect + c = valid_condition do |cc| + cc.code_is = nil + cc.code_is_not = [200] + end + Net::HTTP.expects(:start).raises(Errno::ECONNREFUSED, '') + assert_equal true, c.test + end + def test_test_should_return_true_if_code_is_is_set_to_200_and_response_is_200_twice_for_times_two_of_two c = valid_condition do |cc| cc.times = [2, 2] -- 2.11.4.GIT