diff --git a/.travis.yml b/.travis.yml index 3f371b9e..7c1275e9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -22,3 +22,4 @@ before_script: script: - bundle exec rspec spec + - bundle exec rspec core_specs diff --git a/spec/core/model/annotation_provider_spec.rb b/core_specs/core/model/annotation_provider_spec.rb similarity index 98% rename from spec/core/model/annotation_provider_spec.rb rename to core_specs/core/model/annotation_provider_spec.rb index f49d5d90..4ada52ea 100644 --- a/spec/core/model/annotation_provider_spec.rb +++ b/core_specs/core/model/annotation_provider_spec.rb @@ -1,4 +1,4 @@ -require 'spec_helper' +require 'spec_helper_core' describe AnnotationProvider do include Support::ActiveRecord diff --git a/spec/core/model/annotation_spec.rb b/core_specs/core/model/annotation_spec.rb similarity index 95% rename from spec/core/model/annotation_spec.rb rename to core_specs/core/model/annotation_spec.rb index 773faee2..1850a6d3 100644 --- a/spec/core/model/annotation_spec.rb +++ b/core_specs/core/model/annotation_spec.rb @@ -1,4 +1,4 @@ -require 'spec_helper' +require 'spec_helper_core' describe Annotation do include Support::ActiveRecord diff --git a/spec/core/model/broadcast_spec.rb b/core_specs/core/model/broadcast_spec.rb similarity index 99% rename from spec/core/model/broadcast_spec.rb rename to core_specs/core/model/broadcast_spec.rb index 67c4c63b..a3480e05 100644 --- a/spec/core/model/broadcast_spec.rb +++ b/core_specs/core/model/broadcast_spec.rb @@ -1,4 +1,4 @@ -require 'spec_helper' +require 'spec_helper_core' describe Broadcast do include Support::ActiveRecord diff --git a/spec/core/model/build/compat_spec.rb b/core_specs/core/model/build/compat_spec.rb similarity index 81% rename from spec/core/model/build/compat_spec.rb rename to core_specs/core/model/build/compat_spec.rb index ce04d0a1..3e5495e2 100644 --- a/spec/core/model/build/compat_spec.rb +++ b/core_specs/core/model/build/compat_spec.rb @@ -1,4 +1,4 @@ -# require 'spec_helper' +# require 'spec_helper_core' # # describe Build::Compat do # include Support::ActiveRecord diff --git a/spec/core/model/build/config/dist_spec.rb b/core_specs/core/model/build/config/dist_spec.rb similarity index 100% rename from spec/core/model/build/config/dist_spec.rb rename to core_specs/core/model/build/config/dist_spec.rb diff --git a/spec/core/model/build/config/group_spec.rb b/core_specs/core/model/build/config/group_spec.rb similarity index 100% rename from spec/core/model/build/config/group_spec.rb rename to core_specs/core/model/build/config/group_spec.rb diff --git a/spec/core/model/build/config/matrix_spec.rb b/core_specs/core/model/build/config/matrix_spec.rb similarity index 93% rename from spec/core/model/build/config/matrix_spec.rb rename to core_specs/core/model/build/config/matrix_spec.rb index 824dd89b..f2ced0e5 100644 --- a/spec/core/model/build/config/matrix_spec.rb +++ b/core_specs/core/model/build/config/matrix_spec.rb @@ -1,4 +1,4 @@ -require 'spec_helper' +require 'spec_helper_core' require 'core_ext/hash/deep_symbolize_keys' describe Build::Config::Matrix do diff --git a/spec/core/model/build/config/obfuscate_spec.rb b/core_specs/core/model/build/config/obfuscate_spec.rb similarity index 98% rename from spec/core/model/build/config/obfuscate_spec.rb rename to core_specs/core/model/build/config/obfuscate_spec.rb index 99b4d094..838de065 100644 --- a/spec/core/model/build/config/obfuscate_spec.rb +++ b/core_specs/core/model/build/config/obfuscate_spec.rb @@ -1,4 +1,4 @@ -require 'spec_helper' +require 'spec_helper_core' describe Build::Config::Obfuscate do include Support::ActiveRecord diff --git a/spec/core/model/build/config_spec.rb b/core_specs/core/model/build/config_spec.rb similarity index 99% rename from spec/core/model/build/config_spec.rb rename to core_specs/core/model/build/config_spec.rb index 583da9cf..708786a8 100644 --- a/spec/core/model/build/config_spec.rb +++ b/core_specs/core/model/build/config_spec.rb @@ -1,4 +1,4 @@ -require 'spec_helper' +require 'spec_helper_core' describe Build::Config do include Support::ActiveRecord diff --git a/spec/core/model/build/denormalize_spec.rb b/core_specs/core/model/build/denormalize_spec.rb similarity index 98% rename from spec/core/model/build/denormalize_spec.rb rename to core_specs/core/model/build/denormalize_spec.rb index f77983c0..0077bb40 100644 --- a/spec/core/model/build/denormalize_spec.rb +++ b/core_specs/core/model/build/denormalize_spec.rb @@ -1,4 +1,4 @@ -require 'spec_helper' +require 'spec_helper_core' describe Build, 'denormalization' do include Support::ActiveRecord diff --git a/spec/core/model/build/matrix_spec.rb b/core_specs/core/model/build/matrix_spec.rb similarity index 99% rename from spec/core/model/build/matrix_spec.rb rename to core_specs/core/model/build/matrix_spec.rb index b83ff48b..55efab40 100644 --- a/spec/core/model/build/matrix_spec.rb +++ b/core_specs/core/model/build/matrix_spec.rb @@ -1,4 +1,4 @@ -require 'spec_helper' +require 'spec_helper_core' describe Build, 'matrix' do include Support::ActiveRecord diff --git a/spec/core/model/build/metrics_spec.rb b/core_specs/core/model/build/metrics_spec.rb similarity index 96% rename from spec/core/model/build/metrics_spec.rb rename to core_specs/core/model/build/metrics_spec.rb index 3defa151..cc9b8769 100644 --- a/spec/core/model/build/metrics_spec.rb +++ b/core_specs/core/model/build/metrics_spec.rb @@ -1,4 +1,4 @@ -require 'spec_helper' +require 'spec_helper_core' class BuildMetricsMock include do diff --git a/spec/core/model/build/result_message_spec.rb b/core_specs/core/model/build/result_message_spec.rb similarity index 99% rename from spec/core/model/build/result_message_spec.rb rename to core_specs/core/model/build/result_message_spec.rb index 80592dda..40b22021 100644 --- a/spec/core/model/build/result_message_spec.rb +++ b/core_specs/core/model/build/result_message_spec.rb @@ -1,4 +1,4 @@ -require 'spec_helper' +require 'spec_helper_core' describe Build::ResultMessage do def message(data) diff --git a/spec/core/model/build/states_spec.rb b/core_specs/core/model/build/states_spec.rb similarity index 99% rename from spec/core/model/build/states_spec.rb rename to core_specs/core/model/build/states_spec.rb index 1d5bdbbb..abe2995c 100644 --- a/spec/core/model/build/states_spec.rb +++ b/core_specs/core/model/build/states_spec.rb @@ -1,4 +1,4 @@ -require 'spec_helper' +require 'spec_helper_core' class BuildMock include Build::States diff --git a/spec/core/model/build/update_branch_spec.rb b/core_specs/core/model/build/update_branch_spec.rb similarity index 98% rename from spec/core/model/build/update_branch_spec.rb rename to core_specs/core/model/build/update_branch_spec.rb index dc0a3ee6..4a5c0a8e 100644 --- a/spec/core/model/build/update_branch_spec.rb +++ b/core_specs/core/model/build/update_branch_spec.rb @@ -1,4 +1,4 @@ -require 'spec_helper' +require 'spec_helper_core' describe Build::UpdateBranch, truncation: true do include Support::ActiveRecord diff --git a/spec/core/model/build_spec.rb b/core_specs/core/model/build_spec.rb similarity index 99% rename from spec/core/model/build_spec.rb rename to core_specs/core/model/build_spec.rb index 508b895b..e4827319 100644 --- a/spec/core/model/build_spec.rb +++ b/core_specs/core/model/build_spec.rb @@ -1,4 +1,4 @@ -require 'spec_helper' +require 'spec_helper_core' describe Build, truncation: true do include Support::ActiveRecord diff --git a/spec/core/model/commit_spec.rb b/core_specs/core/model/commit_spec.rb similarity index 98% rename from spec/core/model/commit_spec.rb rename to core_specs/core/model/commit_spec.rb index 7fc1ed01..a126421f 100644 --- a/spec/core/model/commit_spec.rb +++ b/core_specs/core/model/commit_spec.rb @@ -1,4 +1,4 @@ -require 'spec_helper' +require 'spec_helper_core' describe Commit do include Support::ActiveRecord diff --git a/spec/core/model/encrypted_column_spec.rb b/core_specs/core/model/encrypted_column_spec.rb similarity index 99% rename from spec/core/model/encrypted_column_spec.rb rename to core_specs/core/model/encrypted_column_spec.rb index e1c92261..cd27635d 100644 --- a/spec/core/model/encrypted_column_spec.rb +++ b/core_specs/core/model/encrypted_column_spec.rb @@ -1,4 +1,4 @@ -require 'spec_helper' +require 'spec_helper_core' class Travis::Model < ActiveRecord::Base describe EncryptedColumn do diff --git a/spec/core/model/job/cleanup_spec.rb b/core_specs/core/model/job/cleanup_spec.rb similarity index 97% rename from spec/core/model/job/cleanup_spec.rb rename to core_specs/core/model/job/cleanup_spec.rb index 59a43b0c..572e9da7 100644 --- a/spec/core/model/job/cleanup_spec.rb +++ b/core_specs/core/model/job/cleanup_spec.rb @@ -1,4 +1,4 @@ -# require 'spec_helper' +# require 'spec_helper_core' # # describe Job::Cleanup do # include Support::ActiveRecord diff --git a/spec/core/model/job/queue_spec.rb b/core_specs/core/model/job/queue_spec.rb similarity index 99% rename from spec/core/model/job/queue_spec.rb rename to core_specs/core/model/job/queue_spec.rb index 17f958f3..6036f3e8 100644 --- a/spec/core/model/job/queue_spec.rb +++ b/core_specs/core/model/job/queue_spec.rb @@ -1,4 +1,4 @@ -require 'spec_helper' +require 'spec_helper_core' describe 'Job::Queue' do def queue(*args) diff --git a/spec/core/model/job/test_spec.rb b/core_specs/core/model/job/test_spec.rb similarity index 99% rename from spec/core/model/job/test_spec.rb rename to core_specs/core/model/job/test_spec.rb index a9d18a28..c2ebdadf 100644 --- a/spec/core/model/job/test_spec.rb +++ b/core_specs/core/model/job/test_spec.rb @@ -1,4 +1,4 @@ -require 'spec_helper' +require 'spec_helper_core' describe Job::Test do include Support::ActiveRecord diff --git a/spec/core/model/job_spec.rb b/core_specs/core/model/job_spec.rb similarity index 99% rename from spec/core/model/job_spec.rb rename to core_specs/core/model/job_spec.rb index 8a3b18d5..88a62c3e 100644 --- a/spec/core/model/job_spec.rb +++ b/core_specs/core/model/job_spec.rb @@ -1,4 +1,4 @@ -require 'spec_helper' +require 'spec_helper_core' describe Job do include Support::ActiveRecord diff --git a/spec/core/model/organization_spec.rb b/core_specs/core/model/organization_spec.rb similarity index 95% rename from spec/core/model/organization_spec.rb rename to core_specs/core/model/organization_spec.rb index 54b3db09..9920d539 100644 --- a/spec/core/model/organization_spec.rb +++ b/core_specs/core/model/organization_spec.rb @@ -1,4 +1,4 @@ -require 'spec_helper' +require 'spec_helper_core' describe User do include Support::ActiveRecord diff --git a/spec/core/model/permission_spec.rb b/core_specs/core/model/permission_spec.rb similarity index 95% rename from spec/core/model/permission_spec.rb rename to core_specs/core/model/permission_spec.rb index da9dcdc5..2b475840 100644 --- a/spec/core/model/permission_spec.rb +++ b/core_specs/core/model/permission_spec.rb @@ -1,4 +1,4 @@ -require 'spec_helper' +require 'spec_helper_core' describe Permission do include Support::ActiveRecord diff --git a/spec/core/model/repository/settings/ssh_key_spec.rb b/core_specs/core/model/repository/settings/ssh_key_spec.rb similarity index 99% rename from spec/core/model/repository/settings/ssh_key_spec.rb rename to core_specs/core/model/repository/settings/ssh_key_spec.rb index 40a5b829..d2739643 100644 --- a/spec/core/model/repository/settings/ssh_key_spec.rb +++ b/core_specs/core/model/repository/settings/ssh_key_spec.rb @@ -1,5 +1,5 @@ # encoding: utf-8 -require 'spec_helper' +require 'spec_helper_core' describe Repository::Settings::SshKey do let(:private_key) { diff --git a/spec/core/model/repository/settings_spec.rb b/core_specs/core/model/repository/settings_spec.rb similarity index 99% rename from spec/core/model/repository/settings_spec.rb rename to core_specs/core/model/repository/settings_spec.rb index d727d213..6ff7acd4 100644 --- a/spec/core/model/repository/settings_spec.rb +++ b/core_specs/core/model/repository/settings_spec.rb @@ -1,5 +1,5 @@ # encoding: utf-8 -require 'spec_helper' +require 'spec_helper_core' describe Repository::Settings do describe 'env_vars' do diff --git a/spec/core/model/repository/status_image_spec.rb b/core_specs/core/model/repository/status_image_spec.rb similarity index 99% rename from spec/core/model/repository/status_image_spec.rb rename to core_specs/core/model/repository/status_image_spec.rb index e2d9cdf0..1c166cae 100644 --- a/spec/core/model/repository/status_image_spec.rb +++ b/core_specs/core/model/repository/status_image_spec.rb @@ -1,4 +1,4 @@ -require 'spec_helper' +require 'spec_helper_core' describe Repository::StatusImage do include Support::ActiveRecord diff --git a/spec/core/model/repository_spec.rb b/core_specs/core/model/repository_spec.rb similarity index 99% rename from spec/core/model/repository_spec.rb rename to core_specs/core/model/repository_spec.rb index 23a5b3bd..0ce140ab 100644 --- a/spec/core/model/repository_spec.rb +++ b/core_specs/core/model/repository_spec.rb @@ -1,4 +1,4 @@ -require 'spec_helper' +require 'spec_helper_core' describe Repository, truncation: true do include Support::ActiveRecord diff --git a/spec/core/model/request/approval_spec.rb b/core_specs/core/model/request/approval_spec.rb similarity index 99% rename from spec/core/model/request/approval_spec.rb rename to core_specs/core/model/request/approval_spec.rb index 8a591b3e..6b8a6e7f 100644 --- a/spec/core/model/request/approval_spec.rb +++ b/core_specs/core/model/request/approval_spec.rb @@ -1,4 +1,4 @@ -require 'spec_helper' +require 'spec_helper_core' describe Request::Approval do include Travis::Testing::Stubs diff --git a/spec/core/model/request/branches_spec.rb b/core_specs/core/model/request/branches_spec.rb similarity index 99% rename from spec/core/model/request/branches_spec.rb rename to core_specs/core/model/request/branches_spec.rb index 72c6cf50..05306818 100644 --- a/spec/core/model/request/branches_spec.rb +++ b/core_specs/core/model/request/branches_spec.rb @@ -1,4 +1,4 @@ -require 'spec_helper' +require 'spec_helper_core' describe Request::Branches do include Travis::Testing::Stubs diff --git a/spec/core/model/request/states_spec.rb b/core_specs/core/model/request/states_spec.rb similarity index 99% rename from spec/core/model/request/states_spec.rb rename to core_specs/core/model/request/states_spec.rb index 3d731189..6cc708c8 100644 --- a/spec/core/model/request/states_spec.rb +++ b/core_specs/core/model/request/states_spec.rb @@ -1,4 +1,4 @@ -require 'spec_helper' +require 'spec_helper_core' describe Request::States do include Support::ActiveRecord diff --git a/spec/core/model/request_spec.rb b/core_specs/core/model/request_spec.rb similarity index 99% rename from spec/core/model/request_spec.rb rename to core_specs/core/model/request_spec.rb index 41045ee4..4e06e832 100644 --- a/spec/core/model/request_spec.rb +++ b/core_specs/core/model/request_spec.rb @@ -1,4 +1,4 @@ -require 'spec_helper' +require 'spec_helper_core' describe Request do include Support::ActiveRecord diff --git a/spec/core/model/ssl_key_spec.rb b/core_specs/core/model/ssl_key_spec.rb similarity index 99% rename from spec/core/model/ssl_key_spec.rb rename to core_specs/core/model/ssl_key_spec.rb index 83240051..a621e301 100644 --- a/spec/core/model/ssl_key_spec.rb +++ b/core_specs/core/model/ssl_key_spec.rb @@ -1,4 +1,4 @@ -require 'spec_helper' +require 'spec_helper_core' describe SslKey do include Support::ActiveRecord diff --git a/spec/core/model/token_spec.rb b/core_specs/core/model/token_spec.rb similarity index 92% rename from spec/core/model/token_spec.rb rename to core_specs/core/model/token_spec.rb index 08aee799..3bdd17ac 100644 --- a/spec/core/model/token_spec.rb +++ b/core_specs/core/model/token_spec.rb @@ -1,4 +1,4 @@ -require 'spec_helper' +require 'spec_helper_core' describe Token do include Support::ActiveRecord diff --git a/spec/core/model/url_spec.rb b/core_specs/core/model/url_spec.rb similarity index 96% rename from spec/core/model/url_spec.rb rename to core_specs/core/model/url_spec.rb index 094deadf..9001ab4f 100644 --- a/spec/core/model/url_spec.rb +++ b/core_specs/core/model/url_spec.rb @@ -1,4 +1,4 @@ -require 'spec_helper' +require 'spec_helper_core' describe Url do include Support::ActiveRecord diff --git a/spec/core/model/user/oauth_spec.rb b/core_specs/core/model/user/oauth_spec.rb similarity index 96% rename from spec/core/model/user/oauth_spec.rb rename to core_specs/core/model/user/oauth_spec.rb index c8ddfd48..39920520 100644 --- a/spec/core/model/user/oauth_spec.rb +++ b/core_specs/core/model/user/oauth_spec.rb @@ -1,4 +1,4 @@ -require 'spec_helper' +require 'spec_helper_core' describe User::Oauth do include Support::ActiveRecord diff --git a/spec/core/model/user_spec.rb b/core_specs/core/model/user_spec.rb similarity index 99% rename from spec/core/model/user_spec.rb rename to core_specs/core/model/user_spec.rb index 6e4dad45..1375c28f 100644 --- a/spec/core/model/user_spec.rb +++ b/core_specs/core/model/user_spec.rb @@ -1,4 +1,4 @@ -require 'spec_helper' +require 'spec_helper_core' describe User, truncation: true do include Support::ActiveRecord diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 819dcfb7..d48d1e61 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -15,11 +15,8 @@ require 'travis/testing' require 'travis/testing/scenario' require 'travis/testing/factories' require 'travis/testing/matchers' -require 'support' require 'support/matchers' require 'support/formats' -require 'pry' - Travis.logger = Logger.new(StringIO.new) Travis::Api::App.setup @@ -60,19 +57,17 @@ RSpec.configure do |c| c.include TestHelpers c.before :suite do + DatabaseCleaner.strategy = :transaction DatabaseCleaner.clean_with :truncation Scenario.default end c.before :each do - DatabaseCleaner.strategy = :transaction DatabaseCleaner.start ::Redis.connect(url: Travis.config.redis.url).flushdb Travis.config.oauth2 ||= {} Travis.config.oauth2.scope = "user:email,public_repo" set_app Travis::Api::App.new - Travis::Github.stubs(:scopes_for).returns(['public_repo', 'user']) - GH.reset end c.after :each do @@ -83,15 +78,6 @@ RSpec.configure do |c| 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 - TEST_PRIVATE_KEY = "-----BEGIN RSA PRIVATE KEY----- MIIEpAIBAAKCAQEA6Dm1n+fc0ILeLWeiwqsWs1MZaGAfccrmpvuxfcE9UaJp2POy 079g+mdiBgtWfnQlU84YX31rU2x9GJwnb8G6UcvkEjqczOgHHmELtaNmrRH1g8qO diff --git a/spec/spec_helper_core.rb b/spec/spec_helper_core.rb new file mode 100644 index 00000000..e524b215 --- /dev/null +++ b/spec/spec_helper_core.rb @@ -0,0 +1,59 @@ +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 'mocha/api' +require 'stringio' +require 'logger' +require 'patches/rspec_hash_diff' + +Travis.logger = Logger.new(StringIO.new) +Travis.services = Travis::Services +ActionMailer::Base.delivery_method = :test + +include Mocha::API + +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 + 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 diff --git a/spec/support/active_record.rb b/spec/support/active_record.rb index de861fcb..d0e1874c 100644 --- a/spec/support/active_record.rb +++ b/spec/support/active_record.rb @@ -1,6 +1,7 @@ require 'active_record' require 'logger' require 'fileutils' +require 'database_cleaner' require 'travis/testing/factories' FileUtils.mkdir_p('log') @@ -15,16 +16,32 @@ 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 :each, truncation: true do - DatabaseCleaner.clean + 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 end