I have a requirement to test code whose execution depends upon the
default_timezone setting. I have tried several approaches to this but
nothing that I do in my test seems to alter the behaviour that is set in
environment.rb.
Is there a way to dynamically alter AR's method of storing datetime
during a test? Currently I attempt to do this in this fashion:
[ "local", "utc" ].each do |tz|
ActiveRecord::Base.default_timezone = tz
@my_mage = Magik.new
@my_mage.description = tz
@my_mage.my_time_local = DateTime.now
@my_mage.my_time_utc = DateTime.now.utc
@my_mage.save!
puts @my_mage.description
end
but the contents of the my_time_local and my_time_utc do not seem to be
what I expect:
default_timezone = local
Local: Mon Feb 09 14:20:06 UTC 2009 = 1234189206.0 <- AR.my_time_local
now: Mon Feb 09 14:20:06 -0500 2009 = 1234207206.77585 <- Time.now
UTC: Mon Feb 09 19:20:06 UTC 2009 = 1234207206.0 <- AR.my_time.utc
now: Mon Feb 09 19:20:06 UTC 2009 = 1234207206.77609 <- Time.now.utc
default_timezone = utc
Local: Mon Feb 09 14:20:06 UTC 2009 = 1234189206.0 <- AR.my_time_local
now: Mon Feb 09 14:20:06 -0500 2009 = 1234207206.77807 <- Time.now
UTC: Mon Feb 09 19:20:06 UTC 2009 = 1234207206.0 <- AR.my_time.utc
now: Mon Feb 09 19:20:06 UTC 2009 = 1234207206.7783 <- Time.now.utc
.
Is it possible to override AR default_timezone values for testing?
--
Posted via http://www.ruby-forum.com/.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby
on Rails: Talk" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---