517 |
517 |
assert not resp.json['err']
|
518 |
518 |
event = Event.objects.filter(agenda=agenda).get(slug=event.slug)
|
519 |
519 |
assert event.recurrences.count() == 5
|
|
520 |
|
|
521 |
|
|
522 |
@pytest.mark.freeze_time('2021-11-01 10:00')
|
|
523 |
def test_delete_event(app, user):
|
|
524 |
agenda = Agenda.objects.create(label='Foo bar', kind='events')
|
|
525 |
event = Event.objects.create(
|
|
526 |
slug='event', start_datetime=now() + datetime.timedelta(days=5), places=1, agenda=agenda
|
|
527 |
)
|
|
528 |
|
|
529 |
# no authentication
|
|
530 |
resp = app.delete('/api/agenda/%s/event/%s/' % (agenda.slug, event.slug), status=401)
|
|
531 |
assert Event.objects.count() == 1
|
|
532 |
|
|
533 |
app.authorization = ('Basic', ('john.doe', 'password'))
|
|
534 |
resp = app.delete('/api/agenda/%s/event/%s/' % (agenda.slug, event.slug))
|
|
535 |
assert resp.json['err'] == 0
|
|
536 |
assert not Event.objects.exists()
|
|
537 |
|
|
538 |
|
|
539 |
@pytest.mark.freeze_time('2021-11-01 10:00')
|
|
540 |
def test_delete_event_forbidden(app, user, freezer):
|
|
541 |
agenda = Agenda.objects.create(label='Foo bar', kind='events')
|
|
542 |
event = Event.objects.create(
|
|
543 |
slug='event', start_datetime=now() + datetime.timedelta(days=5), places=1, agenda=agenda
|
|
544 |
)
|
|
545 |
booking = Booking.objects.create(event=event)
|
|
546 |
|
|
547 |
app.authorization = ('Basic', ('john.doe', 'password'))
|
|
548 |
resp = app.delete('/api/agenda/%s/event/%s/' % (agenda.slug, event.slug))
|
|
549 |
assert resp.json['err'] == 1
|
|
550 |
assert 'This cannot be removed' in resp.json['err_desc']
|
|
551 |
|
|
552 |
freezer.move_to('2021-11-10 10:00')
|
|
553 |
resp = app.delete('/api/agenda/%s/event/%s/' % (agenda.slug, event.slug))
|
|
554 |
assert resp.json['err'] == 0
|
|
555 |
assert not Event.objects.exists()
|
|
556 |
|
|
557 |
event = Event.objects.create(
|
|
558 |
slug='event', start_datetime=now() + datetime.timedelta(days=5), places=1, agenda=agenda
|
|
559 |
)
|
|
560 |
booking = Booking.objects.create(event=event)
|
|
561 |
|
|
562 |
resp = app.delete('/api/agenda/%s/event/%s/' % (agenda.slug, event.slug))
|
|
563 |
assert resp.json['err'] == 1
|
|
564 |
|
|
565 |
booking.cancellation_datetime = now()
|
|
566 |
booking.save()
|
|
567 |
resp = app.delete('/api/agenda/%s/event/%s/' % (agenda.slug, event.slug))
|
|
568 |
assert resp.json['err'] == 0
|
|
569 |
assert not Event.objects.exists()
|
|
570 |
|
|
571 |
|
|
572 |
@pytest.mark.freeze_time('2021-11-01 10:00')
|
|
573 |
def test_delete_recurring_event_forbidden(app, user):
|
|
574 |
agenda = Agenda.objects.create(label='Foo bar', kind='events')
|
|
575 |
start_datetime = now() + datetime.timedelta(days=10)
|
|
576 |
event = Event.objects.create(
|
|
577 |
start_datetime=start_datetime, places=10, agenda=agenda, recurrence_days=[start_datetime.weekday()]
|
|
578 |
)
|
|
579 |
event_recurrence = event.get_or_create_event_recurrence(event.start_datetime)
|
|
580 |
booking = Booking.objects.create(event=event_recurrence)
|
|
581 |
|
|
582 |
app.authorization = ('Basic', ('john.doe', 'password'))
|
|
583 |
resp = app.delete('/api/agenda/%s/event/%s/' % (agenda.slug, event.slug))
|
|
584 |
assert resp.json['err'] == 1
|
|
585 |
assert 'This cannot be removed' in resp.json['err_desc']
|
|
586 |
|
|
587 |
booking.cancellation_datetime = now()
|
|
588 |
booking.save()
|
|
589 |
resp = app.delete('/api/agenda/%s/event/%s/' % (agenda.slug, event.slug))
|
|
590 |
assert resp.json['err'] == 0
|
|
591 |
assert not Event.objects.exists()
|
520 |
|
-
|