Module: ActiveRecord::TestFixtures
- Extended by:
- ActiveSupport::Concern
- Defined in:
- lib/active_record/fixtures.rb
Defined Under Namespace
Modules: ClassMethods
Instance Method Summary collapse
- #after_teardown ⇒ Object
- #before_setup ⇒ Object
- #enlist_fixture_connections ⇒ Object
- #run_in_transaction? ⇒ Boolean
- #setup_fixtures ⇒ Object
- #teardown_fixtures ⇒ Object
Instance Method Details
#after_teardown ⇒ Object
716 717 718 719 |
# File 'lib/active_record/fixtures.rb', line 716 def after_teardown super teardown_fixtures end |
#before_setup ⇒ Object
711 712 713 714 |
# File 'lib/active_record/fixtures.rb', line 711 def before_setup setup_fixtures super end |
#enlist_fixture_connections ⇒ Object
893 894 895 |
# File 'lib/active_record/fixtures.rb', line 893 def enlist_fixture_connections ActiveRecord::Base.connection_handler.connection_pool_list.map(&:connection) end |
#run_in_transaction? ⇒ Boolean
838 839 840 841 |
# File 'lib/active_record/fixtures.rb', line 838 def run_in_transaction? use_transactional_fixtures && !self.class.uses_transaction?(method_name) end |
#setup_fixtures ⇒ Object
843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 |
# File 'lib/active_record/fixtures.rb', line 843 def setup_fixtures return if 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| connection.begin_transaction joinable: false end # Load fixtures for every test. else ActiveRecord::FixtureSet.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
877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 |
# File 'lib/active_record/fixtures.rb', line 877 def teardown_fixtures return if ActiveRecord::Base.configurations.blank? # 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 ActiveRecord::Base.clear_active_connections! end |