Skip to content
Snippets Groups Projects
Commit 6f79b6fb authored by Alex Reisner's avatar Alex Reisner
Browse files

Merge pull request #618 from sunlightlabs/raise-over-query-limit-error

Raise exceptions on HTTP 400, 402
parents d807048c bad84092
No related branches found
No related tags found
No related merge requests found
......@@ -225,9 +225,15 @@ module Geocoder
end
def check_response_for_errors!(response)
if response.code.to_i == 401
if response.code.to_i == 400
raise_error(Geocoder::InvalidRequest) ||
warn("Geocoding API error: 400 Invalid Request")
elsif response.code.to_i == 401
raise_error(Geocoder::RequestDenied) ||
warn("Geocoding API error: 401 Unauthorized")
elsif response.code.to_i == 402
raise_error(Geocoder::OverQueryLimitError) ||
warn("Geocoding API error: 402 Forbidden")
end
end
......
......@@ -56,12 +56,19 @@ class LookupTest < GeocoderTestCase
end
end
def test_raises_exception_on_401_response
Geocoder.configure(always_raise: [Geocoder::RequestDenied])
assert_raises Geocoder::RequestDenied do
lookup = Geocoder::Lookup.get(:smarty_streets)
response = MockHttpResponse.new(code: 401)
lookup.send(:check_response_for_errors!, response)
def test_raises_exception_on_error_http_status
error_statuses = {
'400' => Geocoder::InvalidRequest,
'401' => Geocoder::RequestDenied,
'402' => Geocoder::OverQueryLimitError
}
Geocoder.configure(always_raise: error_statuses.values)
error_statuses.each do |code, err|
assert_raises err do
lookup = Geocoder::Lookup.get(:smarty_streets)
response = MockHttpResponse.new(code: code.to_i)
lookup.send(:check_response_for_errors!, response)
end
end
end
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment