def test_cannot_cancel_after_cancellation_period(self, mock_tz): """ Test trying to cancel after cancellation period """ mock_tz.now.return_value = datetime(2015, 2, 1, tzinfo=timezone.utc) event = mommy.make_recipe( 'flex_bookings.future_EV', date=datetime(2015, 2, 2, tzinfo=timezone.utc), cancellation_period=48 ) booking = mommy.make_recipe( 'flex_bookings.booking', event=event, user=self.user ) url = reverse('flexbookings:delete_booking', args=[booking.id]) session = _create_session() request = self.factory.get(url) request.session = session request.user = self.user messages = FallbackStorage(request) request._messages = messages view = BookingDeleteView.as_view() resp = view(request, pk=booking.id) cannot_cancel_url = reverse('flexbookings:cancellation_period_past', kwargs={'event_slug': event.slug} ) # test redirect to cannot cancel url self.assertEqual(302, resp.status_code) self.assertEqual(resp.url, cannot_cancel_url)
def _booking_delete(self, user, booking): url = reverse('flexbookings:delete_booking', args=[booking.id]) session = _create_session() request = self.factory.delete(url) request.session = session request.user = user messages = FallbackStorage(request) request._messages = messages view = BookingDeleteView.as_view() return view(request, pk=booking.id)
def test_get_delete_booking_page(self): """ Get the delete booking page with the event context """ event = mommy.make_recipe('flex_bookings.future_EV') booking = mommy.make_recipe('flex_bookings.booking', event=event, user=self.user) url = reverse( 'flexbookings:delete_booking', args=[booking.id] ) session = _create_session() request = self.factory.get(url) request.session = session request.user = self.user messages = FallbackStorage(request) request._messages = messages view = BookingDeleteView.as_view() resp = view(request, pk=booking.id) self.assertEqual(resp.context_data['event'], event)
urlpatterns = [ url(r'^bookings/$', BookingListView.as_view(), name='bookings'), url( r'^bookings/payments-pending/$', payments_pending, name='payments_pending' ), url(r'^booking-history/$', BookingHistoryListView.as_view(), name='booking_history'), url(r'^block/(?P<pk>\d+)/update/$', update_block, name='update_block'), url( r'^booking/(?P<pk>\d+)/update/$', update_booking, name='update_booking' ), # url(r'^booking/update/(?P<pk>\d+)/cancelled/$', # 'flex_bookings.views.update_booking_cancelled', # name='update_booking_cancelled'), url(r'^booking/cancel/(?P<pk>\d+)/$', BookingDeleteView.as_view(), name='delete_booking'), url(r'^events/(?P<event_slug>[\w-]+)/cancellation-period-past/$', cancellation_period_past, name='cancellation_period_past'), url(r'^booking/(?P<event_slug>[\w-]+)/duplicate/$', duplicate_booking, name='duplicate_booking'), url(r'^booking/(?P<event_slug>[\w-]+)/full/$', fully_booked, name='fully_booked'), url(r'^booking/(?P<event_slug>[\w-]+)/new/$', BookingCreateView.as_view(), name='book_event'), url( r'^workshops/(?P<slug>[\w-]+)/$', EventDetailView.as_view(), {'ev_type': 'event'}, name='event_detail' ), url( r'^workshops/$', EventListView.as_view(), {'ev_type': 'events'},