diff options
author | Jeremy Kemper <jeremy@bitsweat.net> | 2008-01-21 17:20:51 +0000 |
---|---|---|
committer | Jeremy Kemper <jeremy@bitsweat.net> | 2008-01-21 17:20:51 +0000 |
commit | 39814fcce0b429eb06654600e4669f1405ffa7d9 (patch) | |
tree | bc5cbe7888b3c31b1e2a92f246512218014fdf76 /activerecord/test/cases/helper.rb | |
parent | 1d4f4cdfe22cbe4962ae8953c96bc5c70d8d4e6a (diff) | |
download | rails-39814fcce0b429eb06654600e4669f1405ffa7d9.tar.gz rails-39814fcce0b429eb06654600e4669f1405ffa7d9.tar.bz2 rails-39814fcce0b429eb06654600e4669f1405ffa7d9.zip |
Merge branch 'ar-test-cleanup' of git://git.geeksomnia.com/rails
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@8681 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'activerecord/test/cases/helper.rb')
-rw-r--r-- | activerecord/test/cases/helper.rb | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/activerecord/test/cases/helper.rb b/activerecord/test/cases/helper.rb new file mode 100644 index 0000000000..992da58499 --- /dev/null +++ b/activerecord/test/cases/helper.rb @@ -0,0 +1,46 @@ +$:.unshift(File.dirname(__FILE__) + '/../../lib') + +require 'config' + +require 'active_record' +require 'active_record/fixtures' +require 'active_record/test_case' +require 'connection' + +# Show backtraces for deprecated behavior for quicker cleanup. +ActiveSupport::Deprecation.debug = true + +# Quote "type" if it's a reserved word for the current connection. +QUOTED_TYPE = ActiveRecord::Base.connection.quote_column_name('type') + +def current_adapter?(*types) + types.any? do |type| + ActiveRecord::ConnectionAdapters.const_defined?(type) && + ActiveRecord::Base.connection.is_a?(ActiveRecord::ConnectionAdapters.const_get(type)) + end +end + +def uses_mocha(description) + require 'rubygems' + require 'mocha' + yield +rescue LoadError + $stderr.puts "Skipping #{description} tests. `gem install mocha` and try again." +end + +ActiveRecord::Base.connection.class.class_eval do + IGNORED_SQL = [/^PRAGMA/, /^SELECT currval/, /^SELECT CAST/, /^SELECT @@IDENTITY/, /^SELECT @@ROWCOUNT/] + + def execute_with_counting(sql, name = nil, &block) + $query_count ||= 0 + $query_count += 1 unless IGNORED_SQL.any? { |r| sql =~ r } + execute_without_counting(sql, name, &block) + end + + alias_method_chain :execute, :counting +end + +# Make with_scope public for tests +class << ActiveRecord::Base + public :with_scope, :with_exclusive_scope +end |