965 |
965 |
assert 'places' not in resp.json
|
966 |
966 |
|
967 |
967 |
|
|
968 |
def test_booking_api_force_waiting_list(app, some_data, user):
|
|
969 |
agenda = Agenda.objects.filter(label=u'Foo bar')[0]
|
|
970 |
event = Event.objects.filter(agenda=agenda)[0]
|
|
971 |
|
|
972 |
app.authorization = ('Basic', ('john.doe', 'password'))
|
|
973 |
|
|
974 |
# no waiting list
|
|
975 |
assert event.waiting_list_places == 0
|
|
976 |
resp = app.post_json('/api/agenda/%s/fillslot/%s/' % (agenda.pk, event.pk), params={'force_waiting_list': True})
|
|
977 |
assert resp.json['err'] == 1
|
|
978 |
assert resp.json['reason'] == 'no waiting list' # legacy
|
|
979 |
assert resp.json['err_class'] == 'no waiting list'
|
|
980 |
assert resp.json['err_desc'] == 'no waiting list'
|
|
981 |
|
|
982 |
event.waiting_list_places = 2
|
|
983 |
event.save()
|
|
984 |
# add a booking
|
|
985 |
resp = app.post_json('/api/agenda/%s/fillslot/%s/' % (agenda.pk, event.pk))
|
|
986 |
assert resp.json['err'] == 0
|
|
987 |
assert resp.json['places']['total'] == 10
|
|
988 |
assert resp.json['places']['available'] == 9
|
|
989 |
assert resp.json['places']['reserved'] == 1
|
|
990 |
assert resp.json['places']['waiting_list_total'] == 2
|
|
991 |
assert resp.json['places']['waiting_list_available'] == 2
|
|
992 |
assert resp.json['places']['waiting_list_reserved'] == 0
|
|
993 |
|
|
994 |
# add another booking
|
|
995 |
resp = app.post_json('/api/agenda/%s/fillslot/%s/' % (agenda.pk, event.pk), params={'force_waiting_list': False})
|
|
996 |
assert resp.json['err'] == 0
|
|
997 |
assert resp.json['places']['total'] == 10
|
|
998 |
assert resp.json['places']['available'] == 8
|
|
999 |
assert resp.json['places']['reserved'] == 2
|
|
1000 |
assert resp.json['places']['waiting_list_total'] == 2
|
|
1001 |
assert resp.json['places']['waiting_list_available'] == 2
|
|
1002 |
assert resp.json['places']['waiting_list_reserved'] == 0
|
|
1003 |
|
|
1004 |
# add a booking, but in waiting list
|
|
1005 |
resp = app.post_json('/api/agenda/%s/fillslot/%s/' % (agenda.pk, event.pk), params={'force_waiting_list': True})
|
|
1006 |
assert resp.json['err'] == 0
|
|
1007 |
assert resp.json['places']['total'] == 10
|
|
1008 |
assert resp.json['places']['available'] == 8
|
|
1009 |
assert resp.json['places']['reserved'] == 2
|
|
1010 |
assert resp.json['places']['waiting_list_total'] == 2
|
|
1011 |
assert resp.json['places']['waiting_list_available'] == 1
|
|
1012 |
assert resp.json['places']['waiting_list_reserved'] == 1
|
|
1013 |
|
|
1014 |
# add a booking => booked in waiting list
|
|
1015 |
resp = app.post_json('/api/agenda/%s/fillslot/%s/' % (agenda.pk, event.pk))
|
|
1016 |
assert resp.json['err'] == 0
|
|
1017 |
assert resp.json['places']['total'] == 10
|
|
1018 |
assert resp.json['places']['available'] == 8
|
|
1019 |
assert resp.json['places']['reserved'] == 2
|
|
1020 |
assert resp.json['places']['waiting_list_total'] == 2
|
|
1021 |
assert resp.json['places']['waiting_list_available'] == 0
|
|
1022 |
assert resp.json['places']['waiting_list_reserved'] == 2
|
|
1023 |
|
|
1024 |
# waiting list is full
|
|
1025 |
resp = app.post_json('/api/agenda/%s/fillslot/%s/' % (agenda.pk, event.pk), params={'force_waiting_list': True})
|
|
1026 |
assert resp.json['err'] == 1
|
|
1027 |
assert resp.json['reason'] == 'sold out' # legacy
|
|
1028 |
assert resp.json['err_class'] == 'sold out'
|
|
1029 |
assert resp.json['err_desc'] == 'sold out'
|
|
1030 |
|
|
1031 |
|
968 |
1032 |
def test_booking_api_with_cancel_booking(app, some_data, user):
|
969 |
1033 |
agenda_id = Agenda.objects.filter(label=u'Foo bar')[0].id
|
970 |
1034 |
event_0, event_1, event_2, event_3 = Event.objects.filter(agenda_id=agenda_id)[0:4]
|
971 |
|
-
|