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

On Feb 10, 9:17 pm, Homer S. [email protected] wrote:

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 C. wrote:

On Feb 10, 9:17�pm, Homer S. [email protected] wrote:

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

What exactly should I be searching for in the log? I don’t see the word
save point.

Colin L. wrote:

On 11 February 2010 11:34, Homer S. [email protected] wrote:

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

Colin

All I see in the test.log is a few selects, an insert (that should be
rolled back), the rendering messages, the error I output for the
exception and the “completed” stats

On 11 February 2010 11:34, Homer S. [email protected] wrote:

What exactly should I be searching for in the log? Â I don’t see the word
save point.

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

Colin

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs