From 446a4334cc360b55ab591ffc085061e15a631afd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20P=C3=A9ters?= Date: Tue, 25 Apr 2017 18:37:36 +0200 Subject: [PATCH 1/5] api: include datetime in fillslot return value (#16031) --- chrono/api/views.py | 3 ++- tests/test_api.py | 9 ++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/chrono/api/views.py b/chrono/api/views.py index 746e007..7003415 100644 --- a/chrono/api/views.py +++ b/chrono/api/views.py @@ -19,7 +19,7 @@ import datetime from django.core.urlresolvers import reverse from django.http import Http404 from django.shortcuts import get_object_or_404 -from django.utils.timezone import now, make_aware +from django.utils.timezone import now, make_aware, localtime from rest_framework import permissions, serializers from rest_framework.exceptions import APIException @@ -188,6 +188,7 @@ class Fillslot(GenericAPIView): 'err': 0, 'in_waiting_list': new_booking.in_waiting_list, 'booking_id': new_booking.id, + 'datetime': localtime(event.start_datetime), } return Response(response) diff --git a/tests/test_api.py b/tests/test_api.py index 15008c8..65b2b94 100644 --- a/tests/test_api.py +++ b/tests/test_api.py @@ -24,7 +24,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) + first_date = datetime.datetime.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), @@ -33,7 +33,7 @@ def some_data(): agenda2 = Agenda(label=u'Foo bar2') agenda2.save() - first_date = datetime.datetime.now().replace(hour=20, minute=0, second=0) + first_date = datetime.datetime.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), @@ -196,6 +196,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 Booking.objects.count() == 1 resp = app.post('/api/agenda/%s/fillslot/%s/' % (agenda.id, event.id)) @@ -211,8 +212,10 @@ def test_booking_api_meeting(app, meetings_agenda, user): event_id = resp.json['data'][2]['id'] app.authorization = ('Basic', ('john.doe', 'password')) - app.post('/api/agenda/%s/fillslot/%s/' % (agenda_id, event_id)) + 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') resp2 = app.get('/api/agenda/meetings/%s/datetimes/' % meeting_type.id) assert len(resp.json['data']) == len(resp2.json['data']) + 1 -- 2.11.0