1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
|
require_relative "../sequel_warning"
if ENV['COVERAGE']
require_relative "../sequel_coverage"
SimpleCov.sequel_coverage(:filter=>%r{lib/sequel/(extensions|plugins)/\w+\.rb\z})
end
ENV['MT_NO_PLUGINS'] = '1' # Work around stupid autoloading of plugins
gem 'minitest'
require 'minitest/global_expectations/autorun'
require 'minitest/hooks/default'
require 'minitest/shared_description'
$:.unshift(File.join(File.dirname(File.expand_path(__FILE__)), "../../lib/"))
require "sequel"
require_relative "../visibility_checking_after_hook" if ENV['CHECK_METHOD_VISIBILITY']
require_relative '../deprecation_helper'
if ENV['SEQUEL_TZINFO_VERSION']
# Allow forcing specific TZInfo versions, useful when testing
gem 'tzinfo', ENV['SEQUEL_TZINFO_VERSION']
end
begin
# Attempt to load ActiveSupport blank extension and inflector first, so Sequel
# can override them.
require 'active_support/core_ext/object/blank'
require 'active_support/inflector'
require 'active_support/core_ext/string/inflections'
rescue LoadError
nil
end
if (RUBY_VERSION >= '2.0.0' && RUBY_ENGINE == 'ruby') || (RUBY_ENGINE == 'jruby' && (JRUBY_VERSION >= '9.3' || (JRUBY_VERSION.match(/\A9\.2\.(\d+)/) && $1.to_i >= 7)))
Sequel.extension :core_refinements
end
class << Sequel::Model
attr_writer :db_schema
alias orig_columns columns
def columns(*cols)
return super if cols.empty?
define_method(:columns){cols}
alias_method(:columns, :columns)
@dataset.send(:columns=, cols) if @dataset
def_column_accessor(*cols)
@columns = cols
@db_schema = {}
cols.each{|c| @db_schema[c] = {}}
end
end
Sequel::DB = nil
Sequel::Model.use_transactions = false
Sequel::Model.cache_anonymous_models = false
db = Sequel.mock(:fetch=>{:id => 1, :x => 1}, :numrows=>1, :autoid=>proc{|sql| 10})
def db.schema(*) [[:id, {:primary_key=>true}]] end
def db.reset() sqls end
def db.supports_schema_parsing?() true end
Sequel::Model.db = DB = db
Sequel::DATABASES.clear
if ENV['SEQUEL_COLUMNS_INTROSPECTION']
Sequel.extension :columns_introspection
Sequel::Database.extension :columns_introspection
Sequel::Mock::Dataset.send(:include, Sequel::ColumnsIntrospection)
end
if ENV['SEQUEL_NO_CACHE_ASSOCIATIONS']
Sequel::Model.cache_associations = false
end
Sequel::Model.plugin :throw_failures if ENV['SEQUEL_MODEL_THROW_FAILURES']
|