diff --git a/lib/timecop/time_stack_item.rb b/lib/timecop/time_stack_item.rb index 995acf77..4cd3a567 100644 --- a/lib/timecop/time_stack_item.rb +++ b/lib/timecop/time_stack_item.rb @@ -76,12 +76,8 @@ def date(date_klass = Date) def datetime(datetime_klass = DateTime) if Float.method_defined?(:to_r) - if !sec.zero? - fractions_of_a_second = time.to_f % 1 - datetime_klass.new(year, month, day, hour, min, (fractions_of_a_second + sec), utc_offset_to_rational(utc_offset)) - else - datetime_klass.new(year, month, day, hour, min, sec, utc_offset_to_rational(utc_offset)) - end + fractions_of_a_second = time.to_f % 1 + datetime_klass.new(year, month, day, hour, min, (fractions_of_a_second + sec), utc_offset_to_rational(utc_offset)) else datetime_klass.new(year, month, day, hour, min, sec, utc_offset_to_rational(utc_offset)) end diff --git a/test/time_stack_item_test.rb b/test/time_stack_item_test.rb index 3e91e543..a72e3cc7 100644 --- a/test/time_stack_item_test.rb +++ b/test/time_stack_item_test.rb @@ -269,7 +269,7 @@ def test_freezing_a_time_with_zone_returns_proper_zones def test_datetime_timezones dt = DateTime.new(2011,1,3,15,25,0,"-6") - Timecop.travel(dt) do + Timecop.freeze(dt) do now = DateTime.now assert_equal dt, now, "#{dt.to_f}, #{now.to_f}" end diff --git a/test/timecop_test.rb b/test/timecop_test.rb index a2a7d24e..435dd933 100644 --- a/test/timecop_test.rb +++ b/test/timecop_test.rb @@ -58,7 +58,10 @@ def test_travel_with_block_unsets_mock_time def test_travel_does_not_reduce_precision_of_datetime # requires to_r on Float (>= 1.9) if Float.method_defined?(:to_r) - Timecop.travel(1) + Timecop.travel(Time.new(2014, 1, 1, 0, 0, 0)) + assert DateTime.now != DateTime.now + + Timecop.travel(Time.new(2014, 1, 1, 0, 0, 59)) assert DateTime.now != DateTime.now end end