def test_model_form_validation_occurs(self): form = MultipleOccurrenceForm(event=self.event, data=self.data) assert form.is_valid(), form.errors.as_text() assert_equal(len(form.valid_occurrences), 1) assert_equal(len(form.invalid_occurrences), 1) assert_equal(len(form.occurrences), 2) assert_equal(form.invalid_occurrences[0][1], self.validator.error_message)
def test_until_gt_start_only_applies_when_repeat_method_until(self): invalid_inputs = ( None, date.today(), date.today() - timedelta(1), self.tomorrow, ) self.data.update({ 'repeats': 'count', 'freq': rrule.DAILY, }) for i in invalid_inputs: self.data['until'] = i form = MultipleOccurrenceForm(event=self.event, data=self.data) assert form.is_valid(), form.errors.as_text()
def _test_formfield(self, formfield, invalid_inputs, valid_inputs): """Utility method: encapsulates all the 'meat' of the test to reduce verbosity. Make sure ``self.data`` is in the right state before running this.""" form = MultipleOccurrenceForm(event=self.event, data=self.data) assert not form.is_valid(), ( "form with no %s key valid when it should not be." % formfield ) for i in invalid_inputs: self.data[formfield] = i form = MultipleOccurrenceForm(event=self.event, data=self.data) assert not form.is_valid(), ( "Invalid %s value %s identified as valid." % (formfield, i) ) for i in valid_inputs: self.data[formfield] = i form = MultipleOccurrenceForm(event=self.event, data=self.data) assert form.is_valid(), form.errors.as_text()
def test_is_year_month_ordinal(self): """Should always be in cleaned data, and always equal bool(input)""" falsey_inputs = ['', None, False, []] truthy_inputs = [True, 1, '1', 'foo'] self.data.update({ 'freq': rrule.YEARLY, 'year_months': [1,12], 'year_month_ordinal': '1', 'year_month_ordinal_day': self.weekday_long['Tuesday'], }) form = MultipleOccurrenceForm(event=self.event, data=self.data) assert form.is_valid(), form.errors.as_text() assert not form.cleaned_data['is_year_month_ordinal'] for i in falsey_inputs: self.data['is_year_month_ordinal'] = i form = MultipleOccurrenceForm(event=self.event, data=self.data) assert form.is_valid(), form.errors.as_text() assert not form.cleaned_data['is_year_month_ordinal'] for i in truthy_inputs: self.data['is_year_month_ordinal'] = i form = MultipleOccurrenceForm(event=self.event, data=self.data) assert form.is_valid(), form.errors.as_text() assert form.cleaned_data['is_year_month_ordinal']
def test_calendar_required(self): self.data.update({'freq': rrule.DAILY}) del self.data['calendar'] form = MultipleOccurrenceForm(event=self.event, data=self.data) assert not form.is_valid() assert "This field is required." in form.errors.get('calendar', [])
def test_with_good_inputs(self): form = MultipleOccurrenceForm(event=self.event, data=self.full_data) assert form.is_valid(), form.errors.as_text() form.save()