diff options
author | Xavier Noria <fxn@hashref.com> | 2014-02-18 10:22:43 +0100 |
---|---|---|
committer | Xavier Noria <fxn@hashref.com> | 2014-02-18 10:25:11 +0100 |
commit | 5d037819ca80606638212f83de741cc2041db28f (patch) | |
tree | e6692777827b70641809d94f3b708c32140292e6 | |
parent | 24fa399c99316d8765c7ec374050b609e362b1c6 (diff) | |
download | rails-5d037819ca80606638212f83de741cc2041db28f.tar.gz rails-5d037819ca80606638212f83de741cc2041db28f.tar.bz2 rails-5d037819ca80606638212f83de741cc2041db28f.zip |
travel_to travels back and re-raises if the block raises
-rw-r--r-- | activesupport/lib/active_support/testing/time_helpers.rb | 9 | ||||
-rw-r--r-- | activesupport/test/time_zone_test.rb | 12 |
2 files changed, 18 insertions, 3 deletions
diff --git a/activesupport/lib/active_support/testing/time_helpers.rb b/activesupport/lib/active_support/testing/time_helpers.rb index b36f3cf94c..eefa84262e 100644 --- a/activesupport/lib/active_support/testing/time_helpers.rb +++ b/activesupport/lib/active_support/testing/time_helpers.rb @@ -10,7 +10,7 @@ module ActiveSupport def stub_object(object, method_name, return_value) key = [object.object_id, method_name] - if (stub = @stubs[key]) + if stub = @stubs[key] unstub_object(stub) end @@ -97,8 +97,11 @@ module ActiveSupport simple_stubs.stub_object(Date, :today, now.to_date) if block_given? - block.call - travel_back + begin + block.call + ensure + travel_back + end end end diff --git a/activesupport/test/time_zone_test.rb b/activesupport/test/time_zone_test.rb index 9fa2f45de5..79ec57af2b 100644 --- a/activesupport/test/time_zone_test.rb +++ b/activesupport/test/time_zone_test.rb @@ -138,6 +138,18 @@ class TimeZoneTest < ActiveSupport::TestCase end end + def test_travel_to_travels_back_and_reraises_if_the_block_raises + ts = Time.current - 1.second + + travel_to ts do + raise + end + + flunk # ensure travel_to re-raises + rescue + assert_not_equal ts, Time.current + end + def test_local time = ActiveSupport::TimeZone["Hawaii"].local(2007, 2, 5, 15, 30, 45) assert_equal Time.utc(2007, 2, 5, 15, 30, 45), time.time |