Projet

Général

Profil

0001-api-return-overbooked_places-in-accept-endpoint-resp.patch

Lauréline Guérin, 05 mars 2020 16:19

Télécharger (2,08 ko)

Voir les différences:

Subject: [PATCH] api: return overbooked_places in accept endpoint response
 (#40017)

 chrono/api/views.py |  3 +++
 tests/test_api.py   | 12 ++++++++++++
 2 files changed, 15 insertions(+)
chrono/api/views.py
794 794
            return Response(response)
795 795
        booking.accept()
796 796
        response = {'err': 0, 'booking_id': booking.id}
797
        event = booking.event
798
        if event.booked_places > event.places:
799
            response['overbooked_places'] = event.booked_places - event.places
797 800
        return Response(response)
798 801

  
799 802

  
tests/test_api.py
1340 1340
    assert resp.json['err_desc'] == 'secondary booking'
1341 1341

  
1342 1342
    resp = app.post('/api/booking/%s/accept/' % primary.id)
1343
    assert resp.json['err'] == 0
1344
    assert 'overbooked_places' not in resp.json
1343 1345
    assert Booking.objects.filter(in_waiting_list=True).count() == 0
1344 1346
    assert Booking.objects.filter(in_waiting_list=False).count() == 2
1345 1347
    primary.refresh_from_db()
......
1362 1364
    assert Booking.objects.filter(in_waiting_list=True).count() == 2
1363 1365
    assert Booking.objects.filter(in_waiting_list=False).count() == 0
1364 1366

  
1367
    # accept a booking with overbooking
1368
    event.places = 1
1369
    event.save()
1370
    Booking.objects.update(cancellation_datetime=None)
1371
    primary.refresh_from_db()
1372
    primary.suspend()
1373
    resp = app.post('/api/booking/%s/accept/' % primary.pk)
1374
    assert resp.json['err'] == 0
1375
    assert resp.json['overbooked_places'] == 1
1376

  
1365 1377

  
1366 1378
def test_suspend_booking(app, some_data, user):
1367 1379
    agenda_id = Agenda.objects.filter(label=u'Foo bar')[0].id
1368
-