Transaction not rolled back in Functional Test

Using rails 2.3 and MySQL 5.

I have code in a controller that is something like

begin
  User.transaction do
    user_object.save

    do something that might raise an exeception
  end
rescue
  Log the error
  give the user the form to try again
end

It works perfectly when the functionality is executed from the browser
post. The user is not in the db when the exception is raised.

However, when I run my functional test this the I do a user.find_by_name
after the post is executed and it comes back with the user (should come
back nil).

I see the exception logged properly but the transaction just is not
rolled back.

Is this a known issue? Have something to do with the transaction
created to reset fixture data?

Thanks in advance

However, when I run my functional test this the I do a user.find_by_name
after the post is executed and it comes back with the user (should come
back nil).

I see the exception logged properly but the transaction just is not
rolled back.

Is this a known issue? Have something to do with the transaction
created to reset fixture data?

Tests are special, because each test already runs within a
transaction. In rails 2.3 Active Record should be using savepoints as
a substitute for actual nested transactions - do your logs show that
happening?

Fred

Frederick Cheung wrote:

Delete the log file then run just that test. Then you will see what happened.

Colin

Colin Law wrote: