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
:nodoc:.
-
#before_setup ⇒ Object
:nodoc:.
- #enlist_fixture_connections ⇒ Object
- #run_in_transaction? ⇒ Boolean
- #setup_fixtures(config = ActiveRecord::Base) ⇒ Object
- #teardown_fixtures ⇒ Object
Instance Method Details
#after_teardown ⇒ Object
:nodoc:
856 857 858 859 |
# File 'lib/active_record/fixtures.rb', line 856 def after_teardown # :nodoc: super teardown_fixtures end |
#before_setup ⇒ Object
:nodoc:
851 852 853 854 |
# File 'lib/active_record/fixtures.rb', line 851 def before_setup # :nodoc: setup_fixtures super end |
#enlist_fixture_connections ⇒ Object
1009 1010 1011 |
# File 'lib/active_record/fixtures.rb', line 1009 def enlist_fixture_connections ActiveRecord::Base.connection_handler.connection_pool_list.map(&:connection) end |
#run_in_transaction? ⇒ Boolean
958 959 960 961 |
# File 'lib/active_record/fixtures.rb', line 958 def run_in_transaction? use_transactional_tests && !self.class.uses_transaction?(method_name) end |
#setup_fixtures(config = ActiveRecord::Base) ⇒ Object
963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 |
# File 'lib/active_record/fixtures.rb', line 963 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_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(config) @@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(config) end # Instantiate fixtures for every test if requested. instantiate_fixtures if use_instantiated_fixtures end |
#teardown_fixtures ⇒ Object
995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 |
# File 'lib/active_record/fixtures.rb', line 995 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 ActiveRecord::Base.clear_active_connections! end |