Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Use mattr_accessor in TestsDatabase instead of setup method

  • Loading branch information...
commit 4a582aa7caf31faa87f435b8ae39fdb85fab1042 1 parent 37283a6
@lifo lifo authored
Showing with 23 additions and 13 deletions.
  1. +23 −13 activemodel/test/cases/tests_database.rb
View
36 activemodel/test/cases/tests_database.rb
@@ -6,25 +6,35 @@
module ActiveModel
module TestsDatabase
+ mattr_accessor :connected
+
def self.included(base)
- ActiveRecord::Base.logger = Logger.new("debug.log")
- ActiveRecord::Base.establish_connection(:adapter => 'sqlite3', :database => ':memory:')
+ unless self.connected
+ setup_connection
+ setup_schema
+ end
base.send :include, ActiveRecord::TestFixtures
- base.setup :setup_database
end
- def setup_database
- unless $schema_file_loaded
- begin
- # TODO : May the better way be with you
- original, $stdout = $stdout, StringIO.new
- load(SCHEMA_FILE)
- ensure
- $stdout = original
- end
+ def self.setup_schema
+ original, $stdout = $stdout, StringIO.new
+ load(SCHEMA_FILE)
+ ensure
+ $stdout = original
+ self.connected = true
+ end
- $schema_file_loaded = true
+ def self.setup_connection
+ defaults = { :database => ':memory:' }
+ begin
+ adapter = defined?(JRUBY_VERSION) ? 'jdbcsqlite3' : 'sqlite3'
+ options = defaults.merge :adapter => adapter, :timeout => 500
+ ActiveRecord::Base.establish_connection(options)
+ rescue Exception
+ $stderr.puts 'SQLite 3 unavailable; trying SQLite 2.'
+ options = defaults.merge :adapter => 'sqlite'
+ ActiveRecord::Base.establish_connection(options)
end
end
end
Please sign in to comment.
Something went wrong with that request. Please try again.