Projet

Général

Profil

0001-api-include-datetime-in-fillslot-return-value-16031.patch

Frédéric Péters, 05 mai 2017 17:15

Télécharger (3,26 ko)

Voir les différences:

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(-)
chrono/api/views.py
19 19
from django.core.urlresolvers import reverse
20 20
from django.http import Http404
21 21
from django.shortcuts import get_object_or_404
22
from django.utils.timezone import now, make_aware
22
from django.utils.timezone import now, make_aware, localtime
23 23

  
24 24
from rest_framework import permissions, serializers
25 25
from rest_framework.exceptions import APIException
......
188 188
            'err': 0,
189 189
            'in_waiting_list': new_booking.in_waiting_list,
190 190
            'booking_id': new_booking.id,
191
            'datetime': localtime(event.start_datetime),
191 192
        }
192 193
        return Response(response)
193 194

  
tests/test_api.py
24 24
def some_data():
25 25
    agenda = Agenda(label=u'Foo bar')
26 26
    agenda.save()
27
    first_date = datetime.datetime.now().replace(hour=17, minute=0, second=0)
27
    first_date = datetime.datetime.now().replace(hour=17, minute=0, second=0, microsecond=0)
28 28
    first_date += datetime.timedelta(days=1)
29 29
    for i in range(3):
30 30
        event = Event(start_datetime=first_date + datetime.timedelta(days=i),
......
33 33

  
34 34
    agenda2 = Agenda(label=u'Foo bar2')
35 35
    agenda2.save()
36
    first_date = datetime.datetime.now().replace(hour=20, minute=0, second=0)
36
    first_date = datetime.datetime.now().replace(hour=20, minute=0, second=0, microsecond=0)
37 37
    first_date += datetime.timedelta(days=1)
38 38
    for i in range(2):
39 39
        event = Event(start_datetime=first_date + datetime.timedelta(days=i),
......
196 196
    app.authorization = ('Basic', ('john.doe', 'password'))
197 197
    resp = app.post('/api/agenda/%s/fillslot/%s/' % (agenda.slug, event.id))
198 198
    Booking.objects.get(id=resp.json['booking_id'])
199
    assert resp.json['datetime'] == event.start_datetime.isoformat().replace('+00:00', 'Z')
199 200
    assert Booking.objects.count() == 1
200 201

  
201 202
    resp = app.post('/api/agenda/%s/fillslot/%s/' % (agenda.id, event.id))
......
211 212
    event_id = resp.json['data'][2]['id']
212 213

  
213 214
    app.authorization = ('Basic', ('john.doe', 'password'))
214
    app.post('/api/agenda/%s/fillslot/%s/' % (agenda_id, event_id))
215
    resp_booking = app.post('/api/agenda/%s/fillslot/%s/' % (agenda_id, event_id))
215 216
    assert Booking.objects.count() == 1
217
    assert resp_booking.json['datetime'] == Booking.objects.get(
218
            id=resp_booking.json['booking_id']).event.start_datetime.isoformat().replace('+00:00', 'Z')
216 219

  
217 220
    resp2 = app.get('/api/agenda/meetings/%s/datetimes/' % meeting_type.id)
218 221
    assert len(resp.json['data']) == len(resp2.json['data']) + 1
219
-