def test_form_for_cancelled_events(self): event = mommy.make_recipe('booking.future_PC', event_type=self.event_type) data = { 'id': event.id, 'name': event.name, 'event_type': self.event_type.id, 'date': event.date.astimezone( pytz.timezone('Europe/London')).strftime('%d %b %Y %H:%M'), 'contact_email': event.contact_email, 'contact_person': event.contact_person, 'cancellation_period': event.cancellation_period, 'location': event.location, 'allow_booking_cancellation': True, 'paypal_email': event.paypal_email, } form = EventAdminForm(data=data, instance=event, ev_type='CL') self.assertTrue(form.is_valid()) # event is not cancelled, so cancelled checkbox is hidden cancelled_field = form.fields['cancelled'] self.assertEqual(cancelled_field.widget.attrs, { 'disabled': 'disabled', 'id': 'cancelled_id', 'class': 'hide' }) self.assertEquals( cancelled_field.help_text, 'To cancel, use the Cancel button on the class list page') event.cancelled = True event.save() data.update({'cancelled': True}) form = EventAdminForm(data=data, instance=event, ev_type='CL') cancelled_field = form.fields['cancelled'] self.assertTrue(form.is_valid()) self.assertEqual(cancelled_field.widget.attrs, { 'class': 'form-control regular-checkbox', 'id': 'cancelled_id' }) self.assertEquals( cancelled_field.help_text, 'Untick to reopen class; note that this does not change any other ' 'attributes and does not reopen previously cancelled bookings. ' 'Class will be reopened with both booking and payment CLOSED')
def test_form_valid(self): form = EventAdminForm(data=self.form_data(), ev_type='CL') self.assertTrue(form.is_valid())