Module: ActiveRecord::TestFixtures
Defined Under Namespace
Modules: ClassMethods
Instance Method Summary
collapse
append_features, extended, included
Instance Method Details
#after_teardown ⇒ Object
810
811
812
813
|
# File 'activerecord/lib/active_record/fixtures.rb', line 810
def after_teardown
super
teardown_fixtures
end
|
#before_setup ⇒ Object
805
806
807
808
|
# File 'activerecord/lib/active_record/fixtures.rb', line 805
def before_setup
setup_fixtures
super
end
|
#enlist_fixture_connections ⇒ Object
978
979
980
|
# File 'activerecord/lib/active_record/fixtures.rb', line 978
def enlist_fixture_connections
ActiveRecord::Base.connection_handler.connection_pool_list.map(&:connection)
end
|
#run_in_transaction? ⇒ Boolean
927
928
929
930
|
# File 'activerecord/lib/active_record/fixtures.rb', line 927
def run_in_transaction?
use_transactional_fixtures &&
!self.class.uses_transaction?(method_name)
end
|
#setup_fixtures(config = ActiveRecord::Base) ⇒ Object
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
|
# File 'activerecord/lib/active_record/fixtures.rb', line 932
def setup_fixtures(config = ActiveRecord::Base)
if pre_loaded_fixtures && !use_transactional_fixtures
raise RuntimeError, 'pre_loaded_fixtures requires use_transactional_fixtures'
end
@fixture_cache = {}
@fixture_connections = []
@@already_loaded_fixtures ||= {}
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
else
ActiveRecord::FixtureSet.reset_cache
@@already_loaded_fixtures[self.class] = nil
@loaded_fixtures = load_fixtures(config)
end
instantiate_fixtures(config) if use_instantiated_fixtures
end
|
#teardown_fixtures ⇒ Object
964
965
966
967
968
969
970
971
972
973
974
975
976
|
# File 'activerecord/lib/active_record/fixtures.rb', line 964
def teardown_fixtures
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
|