1 class ActiveRecordTestConnector
2 cattr_accessor :able_to_connect
3 cattr_accessor :connected
7 self.able_to_connect = true
11 unless self.connected || !self.able_to_connect
14 require_fixture_models
17 rescue Exception => e # errors from ActiveRecord setup
18 $stderr.puts "\nSkipping ActiveRecord assertion tests: #{e}"
19 #$stderr.puts " #{e.backtrace.join("\n ")}\n"
20 self.able_to_connect = false
26 if Object.const_defined?(:ActiveRecord)
27 defaults = { :database => ':memory:' }
28 # ActiveRecord::Base.logger = Logger.new STDOUT
31 options = defaults.merge :adapter => 'sqlite3', :timeout => 500
32 ActiveRecord::Base.establish_connection(options)
33 ActiveRecord::Base.configurations = { 'sqlite3_ar_integration' => options }
34 ActiveRecord::Base.connection
35 rescue Exception # errors from establishing a connection
36 $stderr.puts 'SQLite 3 unavailable; trying SQLite 2.'
37 options = defaults.merge :adapter => 'sqlite'
38 ActiveRecord::Base.establish_connection(options)
39 ActiveRecord::Base.configurations = { 'sqlite2_ar_integration' => options }
40 ActiveRecord::Base.connection
43 unless Object.const_defined?(:QUOTED_TYPE)
44 Object.send :const_set, :QUOTED_TYPE, ActiveRecord::Base.connection.quote_column_name('type')
47 raise "Can't setup connection since ActiveRecord isn't loaded."
51 # Load actionpack sqlite tables
53 ActiveRecord::Base.silence do
54 File.read(File.dirname(__FILE__) + "/../fixtures/schema.sql").split(';').each do |sql|
55 ActiveRecord::Base.connection.execute(sql) unless sql.blank?
60 def require_fixture_models
61 models = Dir.glob(File.dirname(__FILE__) + "/../fixtures/*.rb")
62 models = (models.grep(/user.rb/) + models).uniq
63 models.each {|f| require f}