change raven syntax

This commit is contained in:
carlad 2016-07-25 12:42:16 +02:00
parent 185067265c
commit 1e04b52f5f
2 changed files with 22 additions and 17 deletions

View File

@ -1,15 +1,10 @@
# require 'sentry-raven'
# require 'raven'
module Travis::API::V3
class Router
include Travis::API::V3
attr_accessor :routes, :metrics_processor
# Raven.configure do |config|
# config.dsn = Travis.config.sentry.dsn
# end
def initialize(routes = Routes)
@routes = routes
@metrics_processor = Metrics::Processor.new
@ -25,7 +20,6 @@ module Travis::API::V3
env_params = params(env)
factory, params = routes.factory_for(env['REQUEST_METHOD'.freeze], env['PATH_INFO'.freeze])
raise NotFound unless factory
metrics.name_after(factory)
@ -43,18 +37,16 @@ module Travis::API::V3
metrics.success(status: response[0])
response
rescue Error => error
Raven.capture do
# 1 / 0
metrics.tick(:service)
Raven.capture_exception(error)
metrics.tick(:service)
result = Result.new(access_control, :error, error)
response = V3.response(result.render(env_params, env), {}, status: error.status)
result = Result.new(access_control, :error, error)
response = V3.response(result.render(env_params, env), {}, status: error.status)
metrics.tick(:rendered)
metrics.failure(status: error.status)
metrics.tick(:rendered)
metrics.failure(status: error.status)
response
end
response
end
def render(result, env_params, env)

View File

@ -13,17 +13,30 @@ describe Travis::API::V3::ServiceIndex, set_app: true do
end
describe Travis::API::V3::Router, set_app: true do
class FixRaven < Struct.new(:app)
def call(env)
requested_at = env['requested_at']
env['requested_at'] = env['requested_at'].to_s if env.key?('requested_at')
app.call(env)
rescue Exception => e
env['requested_at'] = requested_at
raise e
end
end
class TestError < StandardError
end
before do
set_app Raven::Rack.new(FixRaven.new(app))
Travis.config.sentry.dsn = "test"
Travis::Api::App.setup_monitoring
end
it 'Sentry captures router errors' do
error = TestError.new('Konstantin broke all the thingz!')
Travis::API::V3::Models::Repository.any_instance.stubs(:service).raises(error)
Raven.expects(:capture).with do |event|
Raven.expects(:send_event).with do |event|
event.message == "#{error.class}: #{error.message}"
end
expect { get "/v3/repo/1" }.to raise_error(TestError)