Froze rails gems
[depot.git] / vendor / rails / activerecord / test / cases / helper.rb
1 $:.unshift(File.dirname(__FILE__) + '/../../lib')
2 $:.unshift(File.dirname(__FILE__) + '/../../../activesupport/lib')
3
4 require 'config'
5 require 'test/unit'
6
7 require 'active_record'
8 require 'active_record/fixtures'
9 require 'active_record/test_case'
10 require 'connection'
11
12 # Show backtraces for deprecated behavior for quicker cleanup.
13 ActiveSupport::Deprecation.debug = true
14
15 # Quote "type" if it's a reserved word for the current connection.
16 QUOTED_TYPE = ActiveRecord::Base.connection.quote_column_name('type')
17
18 def current_adapter?(*types)
19 types.any? do |type|
20 ActiveRecord::ConnectionAdapters.const_defined?(type) &&
21 ActiveRecord::Base.connection.is_a?(ActiveRecord::ConnectionAdapters.const_get(type))
22 end
23 end
24
25 def uses_mocha(description)
26 require 'rubygems'
27 require 'mocha'
28 yield
29 rescue LoadError
30 $stderr.puts "Skipping #{description} tests. `gem install mocha` and try again."
31 end
32
33 ActiveRecord::Base.connection.class.class_eval do
34 IGNORED_SQL = [/^PRAGMA/, /^SELECT currval/, /^SELECT CAST/, /^SELECT @@IDENTITY/, /^SELECT @@ROWCOUNT/]
35
36 def execute_with_query_record(sql, name = nil, &block)
37 $queries_executed ||= []
38 $queries_executed << sql unless IGNORED_SQL.any? { |r| sql =~ r }
39 execute_without_query_record(sql, name, &block)
40 end
41
42 alias_method_chain :execute, :query_record
43 end
44
45 # Make with_scope public for tests
46 class << ActiveRecord::Base
47 public :with_scope, :with_exclusive_scope
48 end
49
50 unless ENV['FIXTURE_DEBUG']
51 module Test #:nodoc:
52 module Unit #:nodoc:
53 class << TestCase #:nodoc:
54 def try_to_load_dependency_with_silence(*args)
55 ActiveRecord::Base.logger.silence { try_to_load_dependency_without_silence(*args)}
56 end
57
58 alias_method_chain :try_to_load_dependency, :silence
59 end
60 end
61 end
62 end