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
-~----------~----~----~----~------~----~------~--~---

Reply via email to