# File lib/active_record/fixtures.rb, line 889 889: def enlist_fixture_connections 890: ActiveRecord::Base.connection_handler.connection_pools.values.map(&:connection) 891: end
# File lib/active_record/fixtures.rb, line 828 828: def run_in_transaction? 829: use_transactional_fixtures && 830: !self.class.uses_transaction?(method_name) 831: end
# File lib/active_record/fixtures.rb, line 833 833: def setup_fixtures 834: return unless !ActiveRecord::Base.configurations.blank? 835: 836: if pre_loaded_fixtures && !use_transactional_fixtures 837: raise RuntimeError, 'pre_loaded_fixtures requires use_transactional_fixtures' 838: end 839: 840: @fixture_cache = {} 841: @fixture_connections = [] 842: @@already_loaded_fixtures ||= {} 843: 844: # Load fixtures once and begin transaction. 845: if run_in_transaction? 846: if @@already_loaded_fixtures[self.class] 847: @loaded_fixtures = @@already_loaded_fixtures[self.class] 848: else 849: @loaded_fixtures = load_fixtures 850: @@already_loaded_fixtures[self.class] = @loaded_fixtures 851: end 852: @fixture_connections = enlist_fixture_connections 853: @fixture_connections.each do |connection| 854: connection.increment_open_transactions 855: connection.transaction_joinable = false 856: connection.begin_db_transaction 857: end 858: # Load fixtures for every test. 859: else 860: ActiveRecord::Fixtures.reset_cache 861: @@already_loaded_fixtures[self.class] = nil 862: @loaded_fixtures = load_fixtures 863: end 864: 865: # Instantiate fixtures for every test if requested. 866: instantiate_fixtures if use_instantiated_fixtures 867: end
# File lib/active_record/fixtures.rb, line 869 869: def teardown_fixtures 870: return unless defined?(ActiveRecord) && !ActiveRecord::Base.configurations.blank? 871: 872: unless run_in_transaction? 873: ActiveRecord::Fixtures.reset_cache 874: end 875: 876: # Rollback changes if a transaction is active. 877: if run_in_transaction? 878: @fixture_connections.each do |connection| 879: if connection.open_transactions != 0 880: connection.rollback_db_transaction 881: connection.decrement_open_transactions 882: end 883: end 884: @fixture_connections.clear 885: end 886: ActiveRecord::Base.clear_active_connections! 887: end
# File lib/active_record/fixtures.rb, line 902 902: def instantiate_fixtures 903: if pre_loaded_fixtures 904: raise RuntimeError, 'Load fixtures before instantiating them.' if ActiveRecord::Fixtures.all_loaded_fixtures.empty? 905: unless @@required_fixture_classes 906: self.class.require_fixture_classes ActiveRecord::Fixtures.all_loaded_fixtures.keys 907: @@required_fixture_classes = true 908: end 909: ActiveRecord::Fixtures.instantiate_all_loaded_fixtures(self, load_instances?) 910: else 911: raise RuntimeError, 'Load fixtures before instantiating them.' if @loaded_fixtures.nil? 912: @loaded_fixtures.each_value do |fixture_set| 913: ActiveRecord::Fixtures.instantiate_fixtures(self, fixture_set, load_instances?) 914: end 915: end 916: end
Disabled; run with --debug to generate this.
Generated with the Darkfish Rdoc Generator 1.1.6.