Files

Class Index [+]

Quicksearch

ActiveRecord::TestFixtures

Public Instance Methods

run_in_transaction?() click to toggle source
     # File lib/active_record/fixtures.rb, line 918
918:     def run_in_transaction?
919:       use_transactional_fixtures &&
920:         !self.class.uses_transaction?(method_name)
921:     end
setup_fixtures() click to toggle source
     # File lib/active_record/fixtures.rb, line 923
923:     def setup_fixtures
924:       return unless defined?(ActiveRecord) && !ActiveRecord::Base.configurations.blank?
925: 
926:       if pre_loaded_fixtures && !use_transactional_fixtures
927:         raise RuntimeError, 'pre_loaded_fixtures requires use_transactional_fixtures'
928:       end
929: 
930:       @fixture_cache = {}
931:       @@already_loaded_fixtures ||= {}
932: 
933:       # Load fixtures once and begin transaction.
934:       if run_in_transaction?
935:         if @@already_loaded_fixtures[self.class]
936:           @loaded_fixtures = @@already_loaded_fixtures[self.class]
937:         else
938:           load_fixtures
939:           @@already_loaded_fixtures[self.class] = @loaded_fixtures
940:         end
941:         ActiveRecord::Base.connection.increment_open_transactions
942:         ActiveRecord::Base.connection.transaction_joinable = false
943:         ActiveRecord::Base.connection.begin_db_transaction
944:       # Load fixtures for every test.
945:       else
946:         Fixtures.reset_cache
947:         @@already_loaded_fixtures[self.class] = nil
948:         load_fixtures
949:       end
950: 
951:       # Instantiate fixtures for every test if requested.
952:       instantiate_fixtures if use_instantiated_fixtures
953:     end
teardown_fixtures() click to toggle source
     # File lib/active_record/fixtures.rb, line 955
955:     def teardown_fixtures
956:       return unless defined?(ActiveRecord) && !ActiveRecord::Base.configurations.blank?
957: 
958:       unless run_in_transaction?
959:         Fixtures.reset_cache
960:       end
961: 
962:       # Rollback changes if a transaction is active.
963:       if run_in_transaction? && ActiveRecord::Base.connection.open_transactions != 0
964:         ActiveRecord::Base.connection.rollback_db_transaction
965:         ActiveRecord::Base.connection.decrement_open_transactions
966:       end
967:       ActiveRecord::Base.clear_active_connections!
968:     end

Private Instance Methods

instantiate_fixtures() click to toggle source
      # File lib/active_record/fixtures.rb, line 986
 986:       def instantiate_fixtures
 987:         if pre_loaded_fixtures
 988:           raise RuntimeError, 'Load fixtures before instantiating them.' if Fixtures.all_loaded_fixtures.empty?
 989:           unless @@required_fixture_classes
 990:             self.class.require_fixture_classes Fixtures.all_loaded_fixtures.keys
 991:             @@required_fixture_classes = true
 992:           end
 993:           Fixtures.instantiate_all_loaded_fixtures(self, load_instances?)
 994:         else
 995:           raise RuntimeError, 'Load fixtures before instantiating them.' if @loaded_fixtures.nil?
 996:           @loaded_fixtures.each do |table_name, fixtures|
 997:             Fixtures.instantiate_fixtures(self, table_name, fixtures, load_instances?)
 998:           end
 999:         end
1000:       end
load_fixtures() click to toggle source
     # File lib/active_record/fixtures.rb, line 971
971:       def load_fixtures
972:         @loaded_fixtures = {}
973:         fixtures = Fixtures.create_fixtures(fixture_path, fixture_table_names, fixture_class_names)
974:         unless fixtures.nil?
975:           if fixtures.instance_of?(Fixtures)
976:             @loaded_fixtures[fixtures.name] = fixtures
977:           else
978:             fixtures.each { |f| @loaded_fixtures[f.name] = f }
979:           end
980:         end
981:       end
load_instances?() click to toggle source
      # File lib/active_record/fixtures.rb, line 1002
1002:       def load_instances?
1003:         use_instantiated_fixtures != :no_instances
1004:       end

Disabled; run with --debug to generate this.

[Validate]

Generated with the Darkfish Rdoc Generator 1.1.6.