Skip to content

Commit 99916f8

Browse files
committed
Run tests in UTC, instead of the local time zone
1 parent 6a1444a commit 99916f8

File tree

6 files changed

+29
-18
lines changed

6 files changed

+29
-18
lines changed

config/environments/test.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,3 +20,5 @@
2020
# The :test delivery method accumulates sent emails in the
2121
# ActionMailer::Base.deliveries array.
2222
config.action_mailer.delivery_method = :test
23+
24+
config.time_zone = 'UTC'

spec/controllers/proposals_controller_spec.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1041,8 +1041,8 @@ def assert_delete(login=nil, &block)
10411041
calendar = Vpim::Icalendar.decode(response.body).first
10421042
component = calendar.find{|t| t.summary == item.title}
10431043
component.should_not be_nil
1044-
component.dtstart.should == item.start_time
1045-
component.dtend.should == item.end_time
1044+
component.dtstart.utc.should == item.start_time.utc
1045+
component.dtend.utc.should == item.end_time.utc
10461046
component.summary.should == item.title
10471047
component.description.should == (item.respond_to?(:users) ?
10481048
"#{item.users.map(&:fullname).join(', ')}: #{item.excerpt}" :

spec/fixtures/proposals.yml

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ postgresql_session:
104104
event_id: 2009
105105
track: cooking
106106
submitted_at: <%= Time.now.to_s(:db) %>
107-
start_time: <%= Time.zone.parse('2009-06-17 10:00am').to_s(:db) %>
107+
start_time: <%= Time.parse('2009-06-17 10:00am UTC').to_s(:db) %>
108108
speaking_experience: "I know PostgreSQL stuff."
109109
audience_level: a
110110
title: "PostgreSQL Session"
@@ -118,7 +118,7 @@ drizzle_session:
118118
event_id: 2009
119119
track: cooking
120120
submitted_at: <%= Time.now.to_s(:db) %>
121-
start_time: <%= Time.zone.parse('2009-06-17 10:00am').to_s(:db) %>
121+
start_time: <%= Time.parse('2009-06-17 10:00am UTC').to_s(:db) %>
122122
speaking_experience: "I know Drizzle stuff."
123123
audience_level: a
124124
title: "Drizzle Session"
@@ -132,7 +132,7 @@ mysql_session:
132132
event_id: 2009
133133
track: cooking
134134
submitted_at: <%= Time.now.to_s(:db) %>
135-
start_time: <%= Time.zone.parse('2009-06-17 11:00am').to_s(:db) %>
135+
start_time: <%= Time.parse('2009-06-17 11:00am UTC').to_s(:db) %>
136136
speaking_experience: "I know MySQL stuff."
137137
audience_level: a
138138
title: "MySQL Session"
@@ -146,7 +146,7 @@ sqlite_session:
146146
event_id: 2009
147147
track: cooking
148148
submitted_at: <%= Time.now.to_s(:db) %>
149-
start_time: <%= Time.zone.parse('2009-06-17 11:00am').to_s(:db) %>
149+
start_time: <%= Time.parse('2009-06-17 11:00am UTC').to_s(:db) %>
150150
audience_level: a
151151
title: "SQLite Session"
152152
speaking_experience: "I know SQLite stuff."
@@ -160,7 +160,7 @@ rakudo_session:
160160
event_id: 2009
161161
track: cooking
162162
submitted_at: <%= Time.now.to_s(:db) %>
163-
start_time: <%= Time.zone.parse('2009-06-17 12:00pm').to_s(:db) %>
163+
start_time: <%= Time.parse('2009-06-17 12:00pm UTC').to_s(:db) %>
164164
speaking_experience: "I AM A PONY!!1!"
165165
audience_level: a
166166
title: "Rakudo Session"
@@ -174,7 +174,7 @@ cloud_session:
174174
event_id: 2009
175175
track: hacks
176176
submitted_at: <%= Time.now.to_s(:db) %>
177-
start_time: <%= Time.zone.parse('2009-06-18 12:00pm').to_s(:db) %>
177+
start_time: <%= Time.parse('2009-06-18 12:00pm UTC').to_s(:db) %>
178178
speaking_experience: "I know everything there is about stratocumulus clouds."
179179
audience_level: a
180180
title: "The Cloud is Falling!"
@@ -188,7 +188,7 @@ business_session:
188188
event_id: 2009
189189
track: hacks
190190
submitted_at: <%= Time.now.to_s(:db) %>
191-
start_time: <%= Time.zone.parse('2009-06-18 12:00pm').to_s(:db) %>
191+
start_time: <%= Time.parse('2009-06-18 12:00pm UTC').to_s(:db) %>
192192
speaking_experience: "I own you."
193193
audience_level: a
194194
title: "Give us money."
@@ -202,7 +202,7 @@ sql_server_session:
202202
event_id: 2009
203203
track: business
204204
submitted_at: <%= Time.now.to_s(:db) %>
205-
start_time: <%= Time.zone.parse('2009-06-17 10:00am').to_s(:db) %>
205+
start_time: <%= Time.parse('2009-06-17 10:00am UTC').to_s(:db) %>
206206
speaking_experience: "Microsoft owns me."
207207
audience_level: a
208208
title: "SQL Server Session"
@@ -216,7 +216,7 @@ couchdb_session:
216216
event_id: 2009
217217
track: hacks
218218
submitted_at: <%= Time.now.to_s(:db) %>
219-
start_time: <%= Time.zone.parse('2009-06-17 10:30am').to_s(:db) %>
219+
start_time: <%= Time.parse('2009-06-17 10:30am UTC').to_s(:db) %>
220220
speaking_experience: "I write all my code using curl."
221221
audience_level: a
222222
title: "CouchDB Session"
@@ -230,7 +230,7 @@ bigtable_session:
230230
event_id: 2009
231231
track: hacks
232232
submitted_at: <%= Time.now.to_s(:db) %>
233-
start_time: <%= Time.zone.parse('2009-06-17 11:00am').to_s(:db) %>
233+
start_time: <%= Time.parse('2009-06-17 11:00am UTC').to_s(:db) %>
234234
speaking_experience: "My table is bigger than yours."
235235
audience_level: a
236236
title: "BigTable Session"

spec/helpers/time_range_helper_spec.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,12 +44,12 @@
4444

4545
describe "with objects" do
4646
it "should format from objects that respond to just start_time" do
47-
event = Proposal.new(:start_time => Time.parse('2008-04-01 13:30'))
47+
event = Proposal.new(:start_time => Time.parse('2008-04-01 13:30 UTC'))
4848
TimeRange.new(event, :format => :text).to_s.should == "Tuesday, April 1, 2008 at 1:30pm"
4949
end
5050

5151
it "should format from objects that respond to both start_time and end_time" do
52-
event = Proposal.new(:start_time => Time.parse('2008-04-01 13:30'),
52+
event = Proposal.new(:start_time => Time.parse('2008-04-01 13:30 UTC'),
5353
:session_type => stub_model(SessionType,:duration => 45))
5454
TimeRange.new(event, :format => :text).to_s.should == "Tuesday, April 1, 2008 from 1:30 - 2:15pm"
5555
end

spec/models/event_spec.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,8 +74,8 @@
7474

7575
describe "#dates" do
7676
it "should return range between start_date and end_date" do
77-
start_date = Date.today + 1.week
78-
end_date = Date.today + 2.weeks
77+
start_date = Time.now.utc.to_date + 1.week
78+
end_date = Time.now.utc.to_date + 2.weeks
7979
event = Event.new(:start_date => start_date, :end_date => end_date)
8080

8181
event.dates.should == (start_date..end_date).to_a

spec/models/proposal_spec.rb

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -286,9 +286,18 @@
286286
describe "to_icalendar" do
287287
def assert_calendar_match(item, component, url_helper=nil)
288288
component.should_not be_nil
289-
component.dtstart.to_i.should == item.start_time.to_i
289+
290+
# This is hacky, but necessary because vPim doesn't actually parse
291+
# time zone information out of iCalendar files.
292+
#
293+
# The files are output with the correct time zone, but seem to be
294+
# parsed in the computer's local time, regardless of the Rails
295+
# time zone setting.
296+
dtstart = Time.parse(component.dtstart.strftime('%Y-%m-%d %H:%M:%S UTC'))
297+
dtstart.to_i.should == item.start_time.to_i
290298
if item.duration
291-
component.dtend.to_i.should == item.end_time.to_i
299+
dtend = Time.parse(component.dtend.strftime('%Y-%m-%d %H:%M:%S UTC'))
300+
dtend.to_i.should == item.end_time.to_i
292301
else
293302
component.dtend.should be_nil
294303
end

0 commit comments

Comments
 (0)