Change Database configuration to make the test pass

This commit is contained in:
Tyranja 2016-05-25 16:24:05 +02:00
parent ae133e649a
commit e1f7921223
11 changed files with 81 additions and 40 deletions

View File

@ -312,7 +312,7 @@ GEM
rspec-its (1.0.1)
rspec-core (>= 2.99.0.beta1)
rspec-expectations (>= 2.99.0.beta1)
rspec-mocks (2.99.2)
rspec-mocks (2.99.4)
sentry-raven (0.15.3)
faraday (>= 0.7.6)
sidekiq (3.3.0)
@ -425,3 +425,6 @@ DEPENDENCIES
travis-yaml!
unicorn
yard-sinatra!
BUNDLED WITH
1.12.4

View File

@ -6,7 +6,7 @@ describe AnnotationProvider do
let(:provider) { Factory(:annotation_provider) }
describe '.authenticate_provider' do
describe '.authenticate_provider', truncation: true do
context 'given a valid username and key' do
it 'authenticates the provider' do
described_class.authenticate_provider(provider.api_username, provider.api_key).should eq(provider)

View File

@ -393,7 +393,7 @@ describe Build, 'matrix' do
yml
}
describe :expand_matrix do
describe :expand_matrix, truncation: true do
it 'does not expand on :os' do
build = Factory.create(:build, config: { rvm: ['1.9.3', '2.0.0'], os: ['osx', 'linux']})
build.matrix.map(&:config).should == [

View File

@ -2,7 +2,11 @@ require 'spec_helper_core'
class BuildMetricsMock
include do
attr_accessor :state
attr_accessor :state, :request
def initialize(request)
@request = request
end
def start(data = {})
self.state = :started
@ -12,16 +16,14 @@ class BuildMetricsMock
Time.now
end
def request
stub('request', created_at: Time.now - 60)
end
end
include Build::Metrics
end
describe Build::Metrics do
let(:build) { BuildMetricsMock.new }
let(:request) { stub('request', created_at: Time.now - 60) }
let(:build) { BuildMetricsMock.new(request) }
let(:timer) { stub('meter', :update) }
before :each do

View File

@ -1,6 +1,6 @@
require 'spec_helper_core'
describe Build::UpdateBranch do
describe Build::UpdateBranch, truncation: true do
include Support::ActiveRecord
let(:request) { Factory.create(:request, event_type: event_type) }

View File

@ -1,6 +1,6 @@
require 'spec_helper_core'
describe Build do
describe Build, truncation: true do
include Support::ActiveRecord
let(:repository) { Factory(:repository) }

View File

@ -1,10 +1,10 @@
require 'spec_helper_core'
describe Repository do
describe Repository, truncation: true do
include Support::ActiveRecord
describe '#last_completed_build' do
let(:repo) { Factory(:repository, name: 'foobarbaz', builds: [build1, build2]) }
let(:repo) { Factory(:repository, name: 'foobarbaz', builds: [build1, build2]) }
let(:build1) { Factory(:build, finished_at: 1.hour.ago, state: :passed) }
let(:build2) { Factory(:build, finished_at: Time.now, state: :failed) }

View File

@ -1,6 +1,6 @@
require 'spec_helper_core'
describe User do
describe User, truncation: true do
include Support::ActiveRecord
let(:user) { Factory(:user, :github_oauth_token => 'token') }

View File

@ -80,27 +80,6 @@ RSpec.configure do |c|
endpoint.superclass.direct_subclasses.delete(endpoint)
end
end
#included do
#before :suite do
#DatabaseCleaner.clean_with(:truncation)
#end
#before :each do
#DatabaseCleaner.strategy = :transaction
#end
#before(:each, :truncation => true) do
#DatabaseCleaner.strategy = :truncation
#end
#before :each do
#DatabaseCleaner.start
#end
#after :each do
#DatabaseCleaner.clean
#end
#end
end
# this keeps Model.inspect from exploding which happens for

58
spec/spec_helper_core.rb Normal file
View File

@ -0,0 +1,58 @@
ENV['RAILS_ENV'] = ENV['ENV'] = 'test'
require 'simplecov' unless RUBY_ENGINE == 'jruby'
RSpec.configure do |c|
c.before(:each) { Time.now.utc.tap { | now| Time.stubs(:now).returns(now) } }
end
require 'support'
require 'travis'
require 'travis/model'
require 'travis/states_cache'
require 'travis/testing'
require 'travis/support'
require 'travis/testing/matchers'
require 'gh'
require 'stringio'
require 'logger'
require 'patches/rspec_hash_diff'
require 'database_cleaner'
Travis.logger = Logger.new(StringIO.new)
Travis.services = Travis::Services
ActionMailer::Base.delivery_method = :test
RSpec.configure do |c|
c.mock_with :mocha
c.alias_example_to :fit, :focused => true
c.filter_run :focused => true
c.run_all_when_everything_filtered = true
# c.backtrace_clean_patterns.clear
c.before :each do
DatabaseCleaner.strategy = :transaction
Travis.logger.level = Logger::INFO
Travis::Event.instance_variable_set(:@queues, nil)
Travis::Event.instance_variable_set(:@subscriptions, nil)
Travis::Event.stubs(:subscribers).returns []
Travis.config.oauth2 ||= {}
Travis.config.oauth2.scope = 'public_repo,user'
Travis.config.repository.ssl_key.size = 1024
Travis::Github.stubs(:scopes_for).returns(['public_repo', 'user'])
GH.reset
end
end
# this keeps Model.inspect from exploding which happens for
# expected method calls in tests that do not use a db connection
require 'active_record'
ActiveRecord::Base.class_eval do
def self.inspect
super
end
end

View File

@ -1,7 +1,6 @@
require 'active_record'
require 'logger'
require 'fileutils'
require 'database_cleaner'
require 'travis/testing/factories'
FileUtils.mkdir_p('log')
@ -16,19 +15,19 @@ ActiveRecord::Base.configurations = { 'test' => config }
ActiveRecord::Base.establish_connection('test')
DatabaseCleaner.clean_with :truncation
DatabaseCleaner.strategy = :transaction
module Support
module ActiveRecord
extend ActiveSupport::Concern
included do
before :all do
::ActiveRecord::Base.establish_connection('test')
before :each, truncation: true do
DatabaseCleaner.strategy = :truncation
DatabaseCleaner.start
end
after :each do
DatabaseCleaner.clean
end
end
end
end