def test_raise_if_event_too_close(self): booking = factories.BookingFactory( stock__beginningDatetime=datetime.utcnow() + timedelta(days=1), ) with pytest.raises(exceptions.CannotCancelConfirmedBooking) as exc: validation.check_beneficiary_can_cancel_booking(booking.user, booking) assert exc.value.errors["booking"] == [ "Impossible d'annuler une réservation plus de 48h après l'avoir " "réservée et moins de 48h avant le début de l'événement" ]
def test_raise_if_already_used(self): booking = factories.BookingFactory(isUsed=True) with pytest.raises(exceptions.BookingIsAlreadyUsed): validation.check_beneficiary_can_cancel_booking(booking.user, booking)
def test_can_cancel_if_event_is_in_a_long_time(self): booking = factories.BookingFactory( stock__beginningDatetime=datetime.utcnow() + timedelta(days=10), ) validation.check_beneficiary_can_cancel_booking(booking.user, booking) # should not raise
def test_raise_if_not_the_benficiary(self): booking = factories.BookingFactory() other_user = users_factories.UserFactory() with pytest.raises(exceptions.BookingDoesntExist): validation.check_beneficiary_can_cancel_booking(other_user, booking)
def test_can_cancel(self): booking = factories.BookingFactory() validation.check_beneficiary_can_cancel_booking(booking.user, booking) # should not raise