Merge pull request #229 from travis-ci/error-handling
create MethodNotAllowed error
This commit is contained in:
commit
fa5f65606e
|
@ -35,6 +35,7 @@ module Travis
|
||||||
NotImplemented = ServerError .create('request not (yet) implemented', status: 501)
|
NotImplemented = ServerError .create('request not (yet) implemented', status: 501)
|
||||||
RequestLimitReached = ClientError .create('request limit reached for resource', status: 429)
|
RequestLimitReached = ClientError .create('request limit reached for resource', status: 429)
|
||||||
AlreadySyncing = ClientError .create('sync already in progress', status: 409)
|
AlreadySyncing = ClientError .create('sync already in progress', status: 409)
|
||||||
|
MethodNotAllowed = ClientError .create('method not allowed', status: 405)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -15,8 +15,9 @@ module Travis::API::V3
|
||||||
return service_index(env) if env['PATH_INFO'.freeze] == ?/.freeze
|
return service_index(env) if env['PATH_INFO'.freeze] == ?/.freeze
|
||||||
metrics = @metrics_processor.create
|
metrics = @metrics_processor.create
|
||||||
access_control = AccessControl.new(env)
|
access_control = AccessControl.new(env)
|
||||||
factory, params = routes.factory_for(env['REQUEST_METHOD'.freeze], env['PATH_INFO'.freeze])
|
|
||||||
env_params = params(env)
|
env_params = params(env)
|
||||||
|
factory, params = routes.factory_for(env['REQUEST_METHOD'.freeze], env['PATH_INFO'.freeze])
|
||||||
|
|
||||||
|
|
||||||
raise NotFound unless factory
|
raise NotFound unless factory
|
||||||
metrics.name_after(factory)
|
metrics.name_after(factory)
|
||||||
|
|
15
spec/v3/error_handling_spec.rb
Normal file
15
spec/v3/error_handling_spec.rb
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
require 'spec_helper'
|
||||||
|
|
||||||
|
describe Travis::API::V3::ServiceIndex do
|
||||||
|
let(:headers) {{ }}
|
||||||
|
let(:path) { "/v3/repo/1/enable" }
|
||||||
|
let(:json) { JSON.load(response.body) }
|
||||||
|
let(:response) { get(path, {}, headers) }
|
||||||
|
let(:resources) { json.fetch('resources') }
|
||||||
|
|
||||||
|
it "handles wrong HTTP method with 405 status" do
|
||||||
|
|
||||||
|
response.status.should == 405
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
Loading…
Reference in New Issue
Block a user