def test_rules_raise_validation_error(self): user = User.objects.get(pk=1) with translation.override('en-us'): form = EventForm({ 'resource': 1, 'start_time': '06:00', 'end_time': '08:00', 'day': '2000-11-1', 'title': 'hey' }, instance=Event.objects.get(pk=1), user=user, acting_user=user) self.assertFalse(form.is_valid()) self.assertEqual(form.errors['__all__'][0], u'This event is already in the past.')
def test_create_form(self): user = User.objects.get(pk=1) group = Group.objects.get(pk=1) start = datetime.datetime(2099, 11, 1, 6, 0, tzinfo=utc) end = datetime.datetime(2099, 11, 1, 7, 0, tzinfo=utc) with translation.override('en-us'), timezone.override('UTC'): form_data = { 'resource': 1, 'start_time': localtime(start).strftime('%H:%M'), 'end_time': localtime(end).strftime('%H:%M'), 'day': '2099-11-1', 'title': 'hey', 'user': user.pk, 'group': group.pk, } form = EventForm(form_data, user=user, acting_user=user) # This date already overlaps with an existing event self.assertFalse(form.is_valid()) self.assertEqual(len(form.errors), 1) self.assertIn('overlap', form.errors['__all__'][0]) start = start - timedelta(hours=1) end = end + timedelta(hours=1) form_data['start_time'] = start.strftime('%H:%M') form_data['end_time'] = end.strftime('%H:%M') form = EventForm(form_data, user=user, acting_user=user) # This date already overlaps with an existing event self.assertFalse(form.is_valid()) self.assertEqual(len(form.errors), 1) self.assertIn('overlap', form.errors['__all__'][0]) # ... and 2011 should be fine start = datetime.datetime(2011, 11, 1, 7, 0, tzinfo=utc) end = datetime.datetime(2011, 11, 1, 8, 0, tzinfo=utc) form_data.update({ 'start_time': start.strftime('%H:%M'), 'end_time': end.strftime('%H:%M'), }) form = EventForm(form_data, user=user, acting_user=user) self.assertTrue(form.is_valid())
def test_missing(self): """Test that missing form values don't kill any clean methods""" user = User.objects.get(pk=1) form = EventForm({}, user=user, acting_user=user) self.assertFalse(form.is_valid()) self.assertEqual(len(form.errors), 5)