168 |
168 |
resp = app.post('/api/agenda/0/fillslot/%s/' % event.id, status=404)
|
169 |
169 |
|
170 |
170 |
|
|
171 |
def test_booking_api_check_delays(app, user):
|
|
172 |
agenda = Agenda.objects.create(
|
|
173 |
label='Foo bar', kind='events', minimal_booking_delay=0, maximal_booking_delay=7
|
|
174 |
)
|
|
175 |
event = Event.objects.create(
|
|
176 |
slug='event-slug',
|
|
177 |
start_datetime=localtime() + datetime.timedelta(days=5),
|
|
178 |
places=5,
|
|
179 |
agenda=agenda,
|
|
180 |
)
|
|
181 |
|
|
182 |
app.authorization = ('Basic', ('john.doe', 'password'))
|
|
183 |
resp = app.post('/api/agenda/%s/fillslot/%s/' % (agenda.slug, event.slug))
|
|
184 |
assert resp.json['err'] == 0
|
|
185 |
|
|
186 |
# test minimal_booking_delay
|
|
187 |
agenda.minimal_booking_delay = 6
|
|
188 |
agenda.save()
|
|
189 |
resp = app.post('/api/agenda/%s/fillslot/%s/' % (agenda.slug, event.slug))
|
|
190 |
assert resp.json['err'] == 1
|
|
191 |
assert resp.json['err_class'] == 'event not bookable'
|
|
192 |
agenda.save()
|
|
193 |
resp = app.post('/api/agenda/%s/fillslot/%s/' % (agenda.slug, event.slug), params={'bypass_delays': True})
|
|
194 |
assert resp.json['err'] == 0
|
|
195 |
|
|
196 |
# test maximal_booking_delay
|
|
197 |
agenda.minimal_booking_delay = 0
|
|
198 |
agenda.maximal_booking_delay = 3
|
|
199 |
agenda.save()
|
|
200 |
resp = app.post('/api/agenda/%s/fillslot/%s/' % (agenda.slug, event.slug))
|
|
201 |
assert resp.json['err'] == 1
|
|
202 |
assert resp.json['err_class'] == 'event not bookable'
|
|
203 |
agenda.save()
|
|
204 |
resp = app.post('/api/agenda/%s/fillslot/%s/' % (agenda.slug, event.slug), params={'bypass_delays': True})
|
|
205 |
assert resp.json['err'] == 0
|
|
206 |
|
|
207 |
|
171 |
208 |
@pytest.mark.freeze_time('2021-02-23')
|
172 |
209 |
def test_booking_api_exclude_slots(app, user):
|
173 |
210 |
agenda = Agenda.objects.create(
|
... | ... | |
2398 |
2435 |
resp = app.post('/api/agenda/0/events/fillslots/', status=404)
|
2399 |
2436 |
|
2400 |
2437 |
|
|
2438 |
def test_api_events_fillslots_check_delays(app, user):
|
|
2439 |
agenda = Agenda.objects.create(
|
|
2440 |
label='Foo bar', kind='events', minimal_booking_delay=0, maximal_booking_delay=7
|
|
2441 |
)
|
|
2442 |
Event.objects.create(
|
|
2443 |
slug='event-slug',
|
|
2444 |
start_datetime=localtime() + datetime.timedelta(days=5),
|
|
2445 |
places=5,
|
|
2446 |
agenda=agenda,
|
|
2447 |
)
|
|
2448 |
|
|
2449 |
app.authorization = ('Basic', ('john.doe', 'password'))
|
|
2450 |
fillslots_url = '/api/agenda/%s/events/fillslots/' % agenda.slug
|
|
2451 |
resp = app.post(fillslots_url, params={'user_external_id': 'user_id', 'slots': 'event-slug'})
|
|
2452 |
assert resp.json['err'] == 0
|
|
2453 |
|
|
2454 |
# test minimal_booking_delay
|
|
2455 |
agenda.minimal_booking_delay = 6
|
|
2456 |
agenda.save()
|
|
2457 |
resp = app.post(fillslots_url, params={'user_external_id': 'user_id', 'slots': 'event-slug'})
|
|
2458 |
assert resp.json['err'] == 1
|
|
2459 |
assert resp.json['err_class'] == 'event not bookable'
|
|
2460 |
agenda.save()
|
|
2461 |
resp = app.post(
|
|
2462 |
fillslots_url, params={'user_external_id': 'user_id', 'slots': 'event-slug', 'bypass_delays': True}
|
|
2463 |
)
|
|
2464 |
assert resp.json['err'] == 0
|
|
2465 |
|
|
2466 |
# test maximal_booking_delay
|
|
2467 |
agenda.minimal_booking_delay = 0
|
|
2468 |
agenda.maximal_booking_delay = 3
|
|
2469 |
agenda.save()
|
|
2470 |
resp = app.post(fillslots_url, params={'user_external_id': 'user_id', 'slots': 'event-slug'})
|
|
2471 |
assert resp.json['err'] == 1
|
|
2472 |
assert resp.json['err_class'] == 'event not bookable'
|
|
2473 |
agenda.save()
|
|
2474 |
resp = app.post(
|
|
2475 |
fillslots_url, params={'user_external_id': 'user_id', 'slots': 'event-slug', 'bypass_delays': True}
|
|
2476 |
)
|
|
2477 |
assert resp.json['err'] == 0
|
|
2478 |
|
|
2479 |
|
2401 |
2480 |
@pytest.mark.freeze_time('2021-09-06 12:00')
|
2402 |
2481 |
def test_api_events_fillslots_past_event(app, user):
|
2403 |
2482 |
app.authorization = ('Basic', ('john.doe', 'password'))
|
... | ... | |
2512 |
2591 |
)
|
2513 |
2592 |
|
2514 |
2593 |
|
|
2594 |
def test_api_events_fillslots_multiple_agendas_check_delays(app, user):
|
|
2595 |
agenda = Agenda.objects.create(
|
|
2596 |
label='Foo bar', kind='events', minimal_booking_delay=0, maximal_booking_delay=7
|
|
2597 |
)
|
|
2598 |
Event.objects.create(
|
|
2599 |
slug='event-slug',
|
|
2600 |
start_datetime=localtime() + datetime.timedelta(days=5),
|
|
2601 |
places=5,
|
|
2602 |
agenda=agenda,
|
|
2603 |
)
|
|
2604 |
|
|
2605 |
app.authorization = ('Basic', ('john.doe', 'password'))
|
|
2606 |
resp = app.post(
|
|
2607 |
'/api/agendas/events/fillslots/?agendas=foo-bar',
|
|
2608 |
params={'user_external_id': 'user_id', 'slots': 'foo-bar@event-slug'},
|
|
2609 |
)
|
|
2610 |
assert resp.json['err'] == 0
|
|
2611 |
|
|
2612 |
# test minimal_booking_delay
|
|
2613 |
agenda.minimal_booking_delay = 6
|
|
2614 |
agenda.save()
|
|
2615 |
resp = app.post(
|
|
2616 |
'/api/agendas/events/fillslots/?agendas=foo-bar',
|
|
2617 |
params={'user_external_id': 'user_id', 'slots': 'foo-bar@event-slug'},
|
|
2618 |
)
|
|
2619 |
assert resp.json['err'] == 1
|
|
2620 |
assert resp.json['err_class'] == 'event not bookable'
|
|
2621 |
agenda.save()
|
|
2622 |
resp = app.post(
|
|
2623 |
'/api/agendas/events/fillslots/?agendas=foo-bar',
|
|
2624 |
params={'user_external_id': 'user_id', 'slots': 'foo-bar@event-slug', 'bypass_delays': True},
|
|
2625 |
)
|
|
2626 |
assert resp.json['err'] == 0
|
|
2627 |
|
|
2628 |
# test maximal_booking_delay
|
|
2629 |
agenda.minimal_booking_delay = 0
|
|
2630 |
agenda.maximal_booking_delay = 3
|
|
2631 |
agenda.save()
|
|
2632 |
resp = app.post(
|
|
2633 |
'/api/agendas/events/fillslots/?agendas=foo-bar',
|
|
2634 |
params={'user_external_id': 'user_id', 'slots': 'foo-bar@event-slug'},
|
|
2635 |
)
|
|
2636 |
assert resp.json['err'] == 1
|
|
2637 |
assert resp.json['err_class'] == 'event not bookable'
|
|
2638 |
agenda.save()
|
|
2639 |
resp = app.post(
|
|
2640 |
'/api/agendas/events/fillslots/?agendas=foo-bar',
|
|
2641 |
params={'user_external_id': 'user_id', 'slots': 'foo-bar@event-slug', 'bypass_delays': True},
|
|
2642 |
)
|
|
2643 |
assert resp.json['err'] == 0
|
|
2644 |
|
|
2645 |
|
2515 |
2646 |
def test_url_translation(app, some_data, user):
|
2516 |
2647 |
app.authorization = ('Basic', ('john.doe', 'password'))
|
2517 |
2648 |
agenda_id = Agenda.objects.filter(label='Foo bar')[0].id
|
2518 |
|
-
|