def test_experience_creation_spontaneous_no_conclusion(self):
     data = self.get_post_data((self.test_date - timedelta(days=2)), (self.test_date - timedelta(days=1)))
     data['attendance'] = 1
     data['subtypes'] = [self.test_past_subtype.pk]
     data['conclusion'] = ""
     form = ExperienceSubmitForm(data, when=self.test_date)
     self.assertFalse(form.is_valid(), "Form should not be valid with no conclusion if it does not need approval")
 def test_past_experience_without_audience(self):
     data = self.get_post_data((self.test_date - timedelta(days=2)), (self.test_date - timedelta(days=1)))
     data.pop('audience', None)
     data['attendance'] = 1
     data['subtypes'] = [self.test_past_subtype.pk]
     form = ExperienceSubmitForm(data, when=self.test_date)
     self.assertFalse(form.is_valid(), "Form should NOT have been valid")
 def test_valid_past_experience_creation(self):
     data = self.get_post_data((self.test_date - timedelta(days=2)), (self.test_date - timedelta(days=1)))
     data['attendance'] = 1
     data['subtypes'] = [self.test_past_subtype.pk]
     data['conclusion'] = "Test conclusion"
     form = ExperienceSubmitForm(data, when=self.test_date)
     self.assertTrue(form.is_valid(), "Form should have been valid")
 def test_experience_creation_invalid_supervisor(self):
     data = self.get_post_data((self.test_date + timedelta(days=1)), (self.test_date + timedelta(days=2)))
     data['next_approver'] = self.clients['ra'].user_object.pk
     form = ExperienceSubmitForm(data, when=self.test_date)
     self.assertFalse(form.is_valid(), "Form should not be valid if next_approver is not hallstaff")
 def test_experience_creation_no_supervisor(self):
     data = self.get_post_data((self.test_date + timedelta(days=1)), (self.test_date + timedelta(days=2)))
     data['next_approver'] = None
     form = ExperienceSubmitForm(data, when=self.test_date)
     self.assertFalse(form.is_valid(), "Form should NOT have been valid if next_approver is not specified")
 def test_experience_creation_form_no_subtype(self):
     data = self.get_post_data((self.test_date + timedelta(days=1)), (self.test_date + timedelta(days=2)))
     data.pop('subtypes', None)
     form = ExperienceSubmitForm(data, when=self.test_date)
     self.assertFalse(form.is_valid(), "Form should NOT have been valid")
 def test_past_experience_creation_negative_attendance(self):
     data = self.get_post_data((self.test_date - timedelta(days=2)), (self.test_date - timedelta(days=1)))
     data['attendance'] = -1
     data['subtypes'] = [self.test_past_subtype.pk]
     form = ExperienceSubmitForm(data, when=self.test_date)
     self.assertFalse(form.is_valid(), "Form should NOT have been valid")
 def test_experience_creation_with_attendance(self):
     data = self.get_post_data((self.test_date + timedelta(days=1)), (self.test_date + timedelta(days=2)))
     data['attendance'] = 1
     form = ExperienceSubmitForm(data, when=self.test_date)
     self.assertFalse(form.is_valid(), "Form should NOT have been valid")
 def test_future_experience_with_start_date_after_end_date(self):
     data = self.get_post_data((self.test_date + timedelta(days=3)), (self.test_date + timedelta(days=2)))
     form = ExperienceSubmitForm(data, when=self.test_date)
     self.assertFalse(form.is_valid(), "Form should NOT have been valid")
 def test_future_experience_subtype_with_past_dates(self):
     data = self.get_post_data((self.test_date - timedelta(days=2)), (self.test_date - timedelta(days=1)))
     form = ExperienceSubmitForm(data, when=self.test_date)
     self.assertFalse(form.is_valid(), "Form should NOT have been valid")
 def test_valid_experience_creation_form(self):
     data = self.get_post_data((self.test_date + timedelta(days=1)), (self.test_date + timedelta(days=2)))
     form = ExperienceSubmitForm(data, when=self.test_date)
     self.assertTrue(form.is_valid(), "Form should have been valid")