test/helper.rb in cohort_analysis-1.0.0 vs test/helper.rb in cohort_analysis-1.0.1

- old
+ new

@@ -12,19 +12,61 @@ require 'active_record' require 'active_record_inline_schema' require 'cohort_analysis' +require 'arel/nodes/table_alias' # strange + if ::Bundler.definition.specs['debugger'].first require 'debugger' elsif ::Bundler.definition.specs['ruby-debug'].first require 'ruby-debug' end # require 'logger' # ActiveRecord::Base.logger = Logger.new($stdout) -ActiveRecord::Base.establish_connection(:adapter => "sqlite3", :database => ":memory:") +case ENV['DATABASE'] +when /mysql/i + bin = ENV['TEST_MYSQL_BIN'] || 'mysql' + username = ENV['TEST_MYSQL_USERNAME'] || 'root' + password = ENV['TEST_MYSQL_PASSWORD'] || 'password' + database = ENV['TEST_MYSQL_DATABASE'] || 'test_cohort_analysis' + cmd = "#{bin} -u #{username} -p#{password}" + `#{cmd} -e 'show databases'` + unless $?.success? + $stderr.puts "Skipping mysql tests because `#{cmd}` doesn't work" + exit 0 + end + system %{#{cmd} -e "drop database #{database}"} + system %{#{cmd} -e "create database #{database}"} + ActiveRecord::Base.establish_connection( + 'adapter' => (RUBY_PLATFORM == 'java' ? 'mysql' : 'mysql2'), + 'encoding' => 'utf8', + 'database' => database, + 'username' => username, + 'password' => password + ) +when /postgr/i + createdb_bin = ENV['TEST_CREATEDB_BIN'] || 'createdb' + dropdb_bin = ENV['TEST_DROPDB_BIN'] || 'dropdb' + username = ENV['TEST_POSTGRES_USERNAME'] || `whoami`.chomp + # password = ENV['TEST_POSTGRES_PASSWORD'] || 'password' + database = ENV['TEST_POSTGRES_DATABASE'] || 'test_cohort_analysis' + system %{#{dropdb_bin} #{database}} + system %{#{createdb_bin} #{database}} + ActiveRecord::Base.establish_connection( + 'adapter' => 'postgresql', + 'encoding' => 'utf8', + 'database' => database, + 'username' => username + # 'password' => password + ) +when /sqlite/i + ActiveRecord::Base.establish_connection(:adapter => "sqlite3", :database => ":memory:") +else + raise "don't know how to test against #{ENV['DATABASE']}" +end Arel::Table.engine = ActiveRecord::Base # https://gist.github.com/1560208 - shared examples in minispec