1
0
Fork 0
mirror of https://github.com/rest-client/rest-client.git synced 2022-11-09 13:49:40 -05:00

ResourceNotFound exception for 404 errors

This commit is contained in:
Adam Wiggins 2008-06-24 03:27:21 -07:00
parent b1dac743f4
commit 95236bc6d2
3 changed files with 10 additions and 1 deletions

View file

@ -7,6 +7,9 @@ module RestClient
# Authorization is required to access the resource specified.
class Unauthorized < RuntimeError; end
# No resource was found at the given URL.
class ResourceNotFound < RuntimeError; end
# The server broke the connection prior to the request completing.
class ServerBrokeConnection < RuntimeError; end
@ -35,7 +38,6 @@ module RestClient
def message(default="Unknown error, HTTP status code #{http_code}")
return default unless @response
return "Resource not found" if http_code == 404
parse_error_xml rescue default
end

View file

@ -124,6 +124,8 @@ module RestClient
raise Redirect, res.header['Location']
elsif res.code == "401"
raise Unauthorized
elsif res.code == "404"
raise ResourceNotFound
else
raise RequestFailed, res
end

View file

@ -189,6 +189,11 @@ describe RestClient do
lambda { @request.process_result(res) }.should raise_error(RestClient::Unauthorized)
end
it "raises ResourceNotFound when the response is 404" do
res = mock('response', :code => '404')
lambda { @request.process_result(res) }.should raise_error(RestClient::ResourceNotFound)
end
it "raises RequestFailed otherwise" do
res = mock('response', :code => '500')
lambda { @request.process_result(res) }.should raise_error(RestClient::RequestFailed)