Updated README.rdoc again
[feedcatcher.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
6 require 'rubygems'
7 require 'test/unit'
8 gem 'mocha', '>= 0.9.5'
9 require 'mocha'
10
11 require 'active_record'
12 require 'active_record/test_case'
13 require 'active_record/fixtures'
14 require 'connection'
15
16 require 'cases/repair_helper'
17
18 # Show backtraces for deprecated behavior for quicker cleanup.
19 ActiveSupport::Deprecation.debug = true
20
21 # Quote "type" if it's a reserved word for the current connection.
22 QUOTED_TYPE = ActiveRecord::Base.connection.quote_column_name('type')
23
24 def current_adapter?(*types)
25 types.any? do |type|
26 ActiveRecord::ConnectionAdapters.const_defined?(type) &&
27 ActiveRecord::Base.connection.is_a?(ActiveRecord::ConnectionAdapters.const_get(type))
28 end
29 end
30
31 ActiveRecord::Base.connection.class.class_eval do
32 IGNORED_SQL = [/^PRAGMA/, /^SELECT currval/, /^SELECT CAST/, /^SELECT @@IDENTITY/, /^SELECT @@ROWCOUNT/, /^SAVEPOINT/, /^ROLLBACK TO SAVEPOINT/, /^RELEASE SAVEPOINT/, /SHOW FIELDS/]
33
34 def execute_with_query_record(sql, name = nil, &block)
35 $queries_executed ||= []
36 $queries_executed << sql unless IGNORED_SQL.any? { |r| sql =~ r }
37 execute_without_query_record(sql, name, &block)
38 end
39
40 alias_method_chain :execute, :query_record
41 end
42
43 # Make with_scope public for tests
44 class << ActiveRecord::Base
45 public :with_scope, :with_exclusive_scope
46 end
47
48 unless ENV['FIXTURE_DEBUG']
49 module ActiveRecord::TestFixtures::ClassMethods
50 def try_to_load_dependency_with_silence(*args)
51 ActiveRecord::Base.logger.silence { try_to_load_dependency_without_silence(*args)}
52 end
53
54 alias_method_chain :try_to_load_dependency, :silence
55 end
56 end
57
58 class ActiveSupport::TestCase
59 include ActiveRecord::TestFixtures
60 include ActiveRecord::Testing::RepairHelper
61
62 self.fixture_path = FIXTURES_ROOT
63 self.use_instantiated_fixtures = false
64 self.use_transactional_fixtures = true
65
66 def create_fixtures(*table_names, &block)
67 Fixtures.create_fixtures(ActiveSupport::TestCase.fixture_path, table_names, {}, &block)
68 end
69 end