diff --git a/Gemfile.lock b/Gemfile.lock index 30724ec1..3342bc2a 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -48,7 +48,7 @@ GIT GIT remote: git://github.com/travis-ci/travis-core.git - revision: 57634c3103dec6472bf732de5f051702224dc345 + revision: 9978518236afb520c8fff68bebe7beb62f8ad776 specs: travis-core (0.0.1) actionmailer (~> 3.2.19) @@ -56,7 +56,7 @@ GIT coder (~> 0.4.0) data_migrations (~> 0.0.1) gh - hashr (~> 0.0.19) + hashr metriks (~> 0.9.7) multi_json pusher (~> 0.14.0) @@ -388,6 +388,3 @@ DEPENDENCIES travis-yaml! unicorn yard-sinatra! - -BUNDLED WITH - 1.10.6 diff --git a/lib/travis/api/v3/services/requests/create.rb b/lib/travis/api/v3/services/requests/create.rb index 24254be1..81654bff 100644 --- a/lib/travis/api/v3/services/requests/create.rb +++ b/lib/travis/api/v3/services/requests/create.rb @@ -23,7 +23,11 @@ module Travis::API::V3 end def limit(repository) - repository.settings.try(:api_builds_rate_limit) || LIMIT + if repository.settings.nil? + LIMIT + else + repository.settings["api_builds_rate_limit"] || LIMIT + end end def remaining_requests(repository) diff --git a/spec/v3/services/requests/create_spec.rb b/spec/v3/services/requests/create_spec.rb index 12ee143b..c0dfb035 100644 --- a/spec/v3/services/requests/create_spec.rb +++ b/spec/v3/services/requests/create_spec.rb @@ -240,19 +240,18 @@ describe Travis::API::V3::Services::Requests::Create do end describe "overrides default request limit if included in repository.settings" do - let(:repository) { Travis::API::V3::Models::Repository.create(owner_name: 'svenfuchs', name: 'minimal', settings: { "api_builds_rate_limit" => "11" } )} - before { 10.times { repository.requests.create(event_type: 'api', result: 'accepted') } } - before { post("/v3/repo/#{repository.id}/requests", params, headers) } + before { repo.update_attribute(:settings, { api_builds_rate_limit: 12 }.to_json) } - example { expect(last_response.status).to be == 200 } - example { expect(JSON.load(body).to_s).to include( + before { 10.times { repo.requests.create(event_type: 'api', result: 'accepted') } } + before { post("/v3/repo/#{repo.id}/requests", {}, headers) } + + example { expect(last_response.status).to be == 202 } + example { expect(JSON.load(body).to_s).to include( "@type", - "error", - "error_type", - "request_limit_reached", - "error_message", - "request limit reached for resource", "repository", + "remaining_requests", + "2", + "request", "representation", "minimal", "slug",