Projet

Général

Profil

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

Lauréline Guérin, 06 mars 2020 09:36

Télécharger (2,16 ko)

Voir les différences:

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

 chrono/api/views.py |  7 ++++++-
 tests/test_api.py   | 12 ++++++++++++
 2 files changed, 18 insertions(+), 1 deletion(-)
chrono/api/views.py
793 793
            }
794 794
            return Response(response)
795 795
        booking.accept()
796
        response = {'err': 0, 'booking_id': booking.id}
796
        event = booking.event
797
        response = {
798
            'err': 0,
799
            'booking_id': booking.pk,
800
            'overbooked_places': max(0, event.booked_places - event.places),
801
        }
797 802
        return Response(response)
798 803

  
799 804

  
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 resp.json['overbooked_places'] == 0
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
-