def test_attended_attendance_records_cannot_be_cancelled(self): try: collect_validators.disconnect( CannotAttendFutureEventsValidator, sender=Attendance ) att = Attendance.objects.create( user=self.user, occurrence=self.occurrence, status=Attendance.STATUS.attended ) att.status = att.STATUS.cancelled assert_raises(ValidationError, att.save) finally: collect_validators.connect( CannotAttendFutureEventsValidator, sender=Attendance )
def test_only_one_active_attendance_record_for_user_occurrence(self): try: collect_validators.disconnect( CannotAttendFutureEventsValidator, sender=Attendance ) att = Attendance(user=self.user, occurrence=self.occurrence) for status in [Attendance.STATUS.booked, Attendance.STATUS.attended]: att.status = att.STATUS.attended att.save() self.assertRaises(ValidationError, Attendance.objects.create, user=self.user, occurrence=self.occurrence ) for status in [Attendance.STATUS.inactive, Attendance.STATUS.cancelled]: att.status = status att.save() att2 = Attendance.objects.create( user=self.user, occurrence=self.occurrence ) att2.delete() finally: collect_validators.connect( CannotAttendFutureEventsValidator, sender=Attendance )
finish=self.start # also fails finish > start check. ) try: collect_validators.connect(AngryValidator, sender=Occurrence) occurrence.save() self.fail('ValidationError not triggered') except ValidationError, e: assert_equal(e.messages[0], AngryValidator.error_message) AngryValidator.priority = -1 try: occurrence.save() self.fail('ValidationError not triggered') except ValidationError, e: assert_not_equal(e.messages[0], AngryValidator.error_message) finally: collect_validators.disconnect(AngryValidator, sender=Occurrence) def test_is_cancelled_property(self): assert not self.occurrence.is_cancelled self.occurrence.status = self.occurrence.STATUS.cancelled self.occurrence.save() self.occurrence = Occurrence.objects.get(pk=self.occurrence.pk) assert self.occurrence.is_cancelled self.occurrence.status = self.occurrence.STATUS.published self.occurrence.save() assert not self.occurrence.is_cancelled self.event.status = self.event.STATUS.cancelled self.event.save() self.occurrence = Occurrence.objects.get(pk=self.occurrence.pk) assert self.occurrence.is_cancelled self.event.status = self.event.STATUS.published