module ActiveRecord::TestFixtures

def setup_fixtures(config = ActiveRecord::Base)

def setup_fixtures(config = ActiveRecord::Base)
  if pre_loaded_fixtures && !use_transactional_tests
    raise RuntimeError, "pre_loaded_fixtures requires use_transactional_tests"
  end
  @fixture_cache = {}
  @fixture_cache_key = [self.class.fixture_table_names.dup, self.class.fixture_paths.dup, self.class.fixture_class_names.dup]
  @fixture_connection_pools = []
  @@already_loaded_fixtures ||= {}
  @connection_subscriber = nil
  @saved_pool_configs = Hash.new { |hash, key| hash[key] = {} }
  if run_in_transaction?
    # Load fixtures once and begin transaction.
    @loaded_fixtures = @@already_loaded_fixtures[@fixture_cache_key]
    unless @loaded_fixtures
      @@already_loaded_fixtures.clear
      @loaded_fixtures = @@already_loaded_fixtures[@fixture_cache_key] = load_fixtures(config)
    end
    setup_transactional_fixtures
  else
    # Load fixtures for every test.
    ActiveRecord::FixtureSet.reset_cache
    invalidate_already_loaded_fixtures
    @loaded_fixtures = load_fixtures(config)
  end
  setup_asynchronous_queries_session
  # Instantiate fixtures for every test if requested.
  instantiate_fixtures if use_instantiated_fixtures
end