Don't rewrite AR connection#commit_db_transaction method globally

This commit is contained in:
Akira Matsuda 2013-07-26 21:34:04 +09:00
parent 516606b819
commit f0942a7c23

@ -182,9 +182,9 @@ def test_only_call_after_rollback_on_create_after_transaction_rollsback_for_new_
end
def test_call_after_rollback_when_commit_fails
@first.class.connection.class.send(:alias_method, :real_method_commit_db_transaction, :commit_db_transaction)
@first.class.connection.singleton_class.send(:alias_method, :real_method_commit_db_transaction, :commit_db_transaction)
begin
@first.class.connection.class.class_eval do
@first.class.connection.singleton_class.class_eval do
def commit_db_transaction; raise "boom!"; end
end
@ -194,8 +194,8 @@ def commit_db_transaction; raise "boom!"; end
assert !@first.save rescue nil
assert_equal [:after_rollback], @first.history
ensure
@first.class.connection.class.send(:remove_method, :commit_db_transaction)
@first.class.connection.class.send(:alias_method, :commit_db_transaction, :real_method_commit_db_transaction)
@first.class.connection.singleton_class.send(:remove_method, :commit_db_transaction)
@first.class.connection.singleton_class.send(:alias_method, :commit_db_transaction, :real_method_commit_db_transaction)
end
end