tests: run in a different time zone (#16194)

This commit is contained in:
Frédéric Péters 2017-05-05 17:35:38 +02:00
parent 7a0d7e5557
commit 206a97ffe4
3 changed files with 19 additions and 12 deletions

View File

@ -1,2 +1,3 @@
TIME_ZONE = 'Asia/Kolkata'
LANGUAGE_CODE = 'en-us'
INSTALLED_APPS = INSTALLED_APPS + ('mellon',)

View File

@ -5,7 +5,7 @@ from webtest import TestApp
from django.contrib.auth import get_user_model
from django.test import override_settings
from django.utils.timezone import now, make_aware
from django.utils.timezone import now, make_aware, localtime
from chrono.agendas.models import Agenda, Event, Booking, MeetingType, TimePeriod
@ -25,7 +25,7 @@ def user():
def some_data():
agenda = Agenda(label=u'Foo bar')
agenda.save()
first_date = datetime.datetime.now().replace(hour=17, minute=0, second=0, microsecond=0)
first_date = localtime(now()).replace(hour=17, minute=0, second=0, microsecond=0)
first_date += datetime.timedelta(days=1)
for i in range(3):
event = Event(start_datetime=first_date + datetime.timedelta(days=i),
@ -34,7 +34,7 @@ def some_data():
agenda2 = Agenda(label=u'Foo bar2')
agenda2.save()
first_date = datetime.datetime.now().replace(hour=20, minute=0, second=0, microsecond=0)
first_date = localtime(now()).replace(hour=20, minute=0, second=0, microsecond=0)
first_date += datetime.timedelta(days=1)
for i in range(2):
event = Event(start_datetime=first_date + datetime.timedelta(days=i),
@ -54,8 +54,8 @@ def meetings_agenda():
meeting_type = MeetingType(agenda=agenda, label='Blah', duration=30)
meeting_type.save()
test_1st_weekday = (now().weekday() + 2) % 7
test_2nd_weekday = (now().weekday() + 3) % 7
test_1st_weekday = (localtime(now()).weekday() + 2) % 7
test_2nd_weekday = (localtime(now()).weekday() + 3) % 7
time_period = TimePeriod(agenda=agenda, weekday=test_1st_weekday,
start_time=datetime.time(10, 0), end_time=datetime.time(12, 0))
@ -176,8 +176,8 @@ def test_datetimes_api_meetings_agenda(app, meetings_agenda):
# test with a timeperiod overlapping current moment, it should get one
# datetime for the current timeperiod + two from the next week.
TimePeriod.objects.filter(agenda=meetings_agenda).delete()
start_time = now() - datetime.timedelta(minutes=10)
time_period = TimePeriod(agenda=meetings_agenda, weekday=now().weekday(),
start_time = localtime(now()) - datetime.timedelta(minutes=10)
time_period = TimePeriod(agenda=meetings_agenda, weekday=localtime(now()).weekday(),
start_time=start_time,
end_time=start_time + datetime.timedelta(hours=1))
time_period.save()
@ -201,7 +201,7 @@ def test_booking_api(app, some_data, user):
app.authorization = ('Basic', ('john.doe', 'password'))
resp = app.post('/api/agenda/%s/fillslot/%s/' % (agenda.slug, event.id))
Booking.objects.get(id=resp.json['booking_id'])
assert resp.json['datetime'] == event.start_datetime.isoformat().replace('+00:00', 'Z')
assert resp.json['datetime'] == localtime(event.start_datetime).isoformat()
assert 'accept_url' not in resp.json['api']
assert 'cancel_url' in resp.json['api']
assert Booking.objects.count() == 1
@ -223,8 +223,8 @@ def test_booking_api_meeting(app, meetings_agenda, user):
app.authorization = ('Basic', ('john.doe', 'password'))
resp_booking = app.post('/api/agenda/%s/fillslot/%s/' % (agenda_id, event_id))
assert Booking.objects.count() == 1
assert resp_booking.json['datetime'] == Booking.objects.get(
id=resp_booking.json['booking_id']).event.start_datetime.isoformat().replace('+00:00', 'Z')
assert resp_booking.json['datetime'][:16] == localtime(Booking.objects.all()[0].event.start_datetime
).isoformat()[:16]
resp2 = app.get('/api/agenda/meetings/%s/datetimes/' % meeting_type.id)
assert len(resp.json['data']) == len(resp2.json['data']) + 1

View File

@ -238,21 +238,27 @@ def test_delete_agenda_as_manager(app, manager_user):
def test_add_event(app, admin_user):
agenda = Agenda(label=u'Foo bar')
agenda.maximal_booking_delay = 0
agenda.save()
app = login(app)
resp = app.get('/manage/agendas/%s/' % agenda.id, status=200)
assert "This agenda doesn't have any event yet." in resp.body
year = now().year + 1
resp = resp.click('New Event')
resp.form['start_datetime'] = '2016-02-15 17:00'
resp.form['start_datetime'] = '%s-02-15 17:00' % year
resp.form['places'] = 10
resp = resp.form.submit()
resp = resp.follow()
event = Event.objects.get(places=10)
assert not "This agenda doesn't have any event yet." in resp.body
assert '/manage/events/%s/' % event.id in resp.body
assert 'Feb. 15, 2016, 5 p.m.' in resp.body
assert ('Feb. 15, %s, 5 p.m.' % year) in resp.body
assert '10 places' in resp.body
resp_datetimes = app.get('/api/agenda/%s/datetimes/' % agenda.id)
assert resp_datetimes.json['data'][0]['text'] == 'Feb. 15, %s, 5 p.m.' % year
assert resp_datetimes.json['data'][0]['datetime'] == '%s-02-15 17:00:00' % year
def test_add_event_on_missing_agenda(app, admin_user):
app = login(app)
app.get('/manage/agendas/%s/add-event' % '999', status=404)