Module: ActiveRecord::TestFixtures
- Includes:
- Onceler::Transactions
- Defined in:
- lib/onceler/extensions/active_record_4_1.rb,
lib/onceler/extensions/active_record_4_0.rb,
lib/onceler/extensions/active_record_3_2.rb,
lib/onceler/extensions/active_record_3_0.rb
Overview
monkey-patch these to use savepoints (if necessary)
Instance Method Summary collapse
Methods included from Onceler::Transactions
#begin_transaction, #rollback_transaction
Instance Method Details
#setup_fixtures ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/onceler/extensions/active_record_3_2.rb', line 8 def setup_fixtures return unless !ActiveRecord::Base.configurations.blank? if pre_loaded_fixtures && !use_transactional_fixtures raise RuntimeError, 'pre_loaded_fixtures requires use_transactional_fixtures' end @fixture_cache = {} @fixture_connections = [] @@already_loaded_fixtures ||= {} # Load fixtures once and begin transaction. if run_in_transaction? if @@already_loaded_fixtures[self.class] @loaded_fixtures = @@already_loaded_fixtures[self.class] else @loaded_fixtures = load_fixtures @@already_loaded_fixtures[self.class] = @loaded_fixtures end @fixture_connections = enlist_fixture_connections @fixture_connections.each do |connection| ### ONCELER'd begin_transaction(connection) end # Load fixtures for every test. else ActiveRecord::Fixtures.reset_cache @@already_loaded_fixtures[self.class] = nil @loaded_fixtures = load_fixtures end # Instantiate fixtures for every test if requested. instantiate_fixtures if use_instantiated_fixtures end |
#teardown_fixtures ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 |
# File 'lib/onceler/extensions/active_record_4_1.rb', line 5 def teardown_fixtures # Rollback changes if a transaction is active. if run_in_transaction? @fixture_connections.each do |connection| connection.rollback_transaction if connection.transaction_open? end @fixture_connections.clear else ActiveRecord::FixtureSet.reset_cache end ### ONCELER'd end |