300 |
300 |
app.authorization = ('Basic', ('john.doe', 'password'))
|
301 |
301 |
resp = app.post(fillslot_url)
|
302 |
302 |
assert resp.json['err'] == 1
|
303 |
|
assert resp.json['reason'] == 'no more desk available'
|
|
303 |
assert resp.json['reason'] == resp.json['err_desc'] == 'no more desk available'
|
304 |
304 |
|
305 |
305 |
def test_booking_api(app, some_data, user):
|
306 |
306 |
agenda = Agenda.objects.filter(label=u'Foo bar')[0]
|
... | ... | |
352 |
352 |
resp = app.post_json('/api/agenda/%s/fillslot/%s/' % (agenda.id, event.id),
|
353 |
353 |
params={'user_name': {'foo': 'bar'}}, status=400)
|
354 |
354 |
assert resp.json['err'] == 1
|
355 |
|
assert resp.json['reason'] == 'invalid payload'
|
|
355 |
assert resp.json['reason'] == resp.json['err_desc'] == 'invalid payload'
|
356 |
356 |
assert len(resp.json['errors']) == 1
|
357 |
357 |
assert 'user_name' in resp.json['errors']
|
358 |
358 |
|
... | ... | |
382 |
382 |
# try booking the same timeslot
|
383 |
383 |
resp2 = app.post('/api/agenda/%s/fillslot/%s/' % (agenda_id, event_id))
|
384 |
384 |
assert resp2.json['err'] == 1
|
385 |
|
assert resp2.json['reason'] == 'no more desk available'
|
|
385 |
assert resp2.json['reason'] == resp2.json['err_desc'] == 'no more desk available'
|
386 |
386 |
|
387 |
387 |
# try booking another timeslot
|
388 |
388 |
event_id = resp.json['data'][3]['id']
|
... | ... | |
551 |
551 |
app.authorization = ('Basic', ('john.doe', 'password'))
|
552 |
552 |
resp = app.post('/api/agenda/%s/fillslot/%s/' % (agenda_id, event.id), status=200)
|
553 |
553 |
assert resp.json['err'] == 1
|
554 |
|
assert resp.json['reason'] == 'sold out'
|
|
554 |
assert resp.json['reason'] == resp.json['err_desc'] == 'sold out'
|
555 |
555 |
|
556 |
556 |
def test_status(app, some_data, user):
|
557 |
557 |
agenda_id = Agenda.objects.filter(label=u'Foo bar')[0].id
|
... | ... | |
641 |
641 |
app.authorization = ('Basic', ('john.doe', 'password'))
|
642 |
642 |
resp = app.post('/api/agenda/%s/fillslot/%s/' % (agenda_id, event.id), status=200)
|
643 |
643 |
assert resp.json['err'] == 1
|
644 |
|
assert resp.json['reason'] == 'sold out'
|
|
644 |
assert resp.json['reason'] == resp.json['err_desc'] == 'sold out'
|
645 |
645 |
|
646 |
646 |
def test_accept_booking(app, some_data, user):
|
647 |
647 |
agenda_id = Agenda.objects.filter(label=u'Foo bar')[0].id
|
... | ... | |
686 |
686 |
app.authorization = ('Basic', ('john.doe', 'password'))
|
687 |
687 |
resp = app.post('/api/agenda/%s/fillslot/%s/?count=NaN' % (agenda.slug, event.id), status=400)
|
688 |
688 |
assert resp.json['err'] == 1
|
689 |
|
assert resp.json['reason'] == "invalid value for count (NaN)"
|
|
689 |
assert resp.json['reason'] == resp.json['err_desc'] == "invalid value for count (NaN)"
|
690 |
690 |
|
691 |
691 |
resp = app.post('/api/agenda/%s/fillslot/%s/?count=3' % (agenda.slug, event.id))
|
692 |
692 |
Booking.objects.get(id=resp.json['booking_id'])
|
... | ... | |
713 |
713 |
# check waiting list overflow
|
714 |
714 |
resp = app.post('/api/agenda/%s/fillslot/%s/?count=5' % (agenda.slug, event.id))
|
715 |
715 |
assert resp.json['err'] == 1
|
716 |
|
assert resp.json['reason'] == 'sold out'
|
|
716 |
assert resp.json['reason'] == resp.json['err_desc'] == 'sold out'
|
717 |
717 |
assert Event.objects.get(id=event.id).booked_places == 2
|
718 |
718 |
assert Event.objects.get(id=event.id).waiting_list == 5
|
719 |
719 |
|
... | ... | |
730 |
730 |
|
731 |
731 |
resp = app.post('/api/agenda/%s/fillslot/%s/?count=5' % (agenda.slug, event.id))
|
732 |
732 |
assert resp.json['err'] == 1
|
733 |
|
assert resp.json['reason'] == 'sold out'
|
|
733 |
assert resp.json['reason'] == resp.json['err_desc'] == 'sold out'
|
734 |
734 |
|
735 |
735 |
resp = app.post('/api/agenda/%s/fillslot/%s/?count=3' % (agenda.slug, event.id))
|
736 |
736 |
assert resp.json['err'] == 0
|
... | ... | |
739 |
739 |
|
740 |
740 |
resp = app.post('/api/agenda/%s/fillslot/%s/?count=3' % (agenda.slug, event.id))
|
741 |
741 |
assert resp.json['err'] == 1
|
742 |
|
assert resp.json['reason'] == 'sold out'
|
|
742 |
assert resp.json['reason'] == resp.json['err_desc'] == 'sold out'
|
743 |
743 |
|
744 |
744 |
resp = app.post('/api/agenda/%s/fillslot/%s/?count=2' % (agenda.slug, event.id))
|
745 |
745 |
assert resp.json['err'] == 0
|
... | ... | |
848 |
848 |
resp = app.post('/api/agenda/%s/fillslot/%s/' % (agenda_id, event_id))
|
849 |
849 |
assert Booking.objects.count() == 2
|
850 |
850 |
assert resp.json['err'] == 1
|
851 |
|
assert resp.json['reason'] == 'no more desk available'
|
|
851 |
assert resp.json['reason'] == resp.json['err_desc'] == 'no more desk available'
|
852 |
852 |
|
853 |
853 |
# cancel first booking and retry
|
854 |
854 |
resp = app.post(cancel_url)
|
... | ... | |
885 |
885 |
# try booking the same timeslot again and fail
|
886 |
886 |
resp = app.post('/api/agenda/%s/fillslot/%s/' % (agenda_id, event_id))
|
887 |
887 |
assert resp.json['err'] == 1
|
888 |
|
assert resp.json['reason'] == 'no more desk available'
|
|
888 |
assert resp.json['reason'] == resp.json['err_desc'] == 'no more desk available'
|
889 |
889 |
|
890 |
890 |
# fill the agenda and make sure big O is O(1)
|
891 |
891 |
for idx, event_data in enumerate(resp2.json['data'][2:10]):
|
892 |
|
-
|