diff --git a/smash/web/tests/view/test_appointments.py b/smash/web/tests/view/test_appointments.py index a1544f213bdcfcb70a699f4b9299c61faa5b069d..e17bb743efcab2bf5f7b467e2786592f7ed1c566 100644 --- a/smash/web/tests/view/test_appointments.py +++ b/smash/web/tests/view/test_appointments.py @@ -4,11 +4,11 @@ import logging from django.core.files.uploadedfile import SimpleUploadedFile from django.urls import reverse -from web.forms import SubjectEditForm, StudySubjectEditForm, AppointmentEditForm +from web.forms import SubjectEditForm, StudySubjectEditForm, AppointmentEditForm, AppointmentAddForm from web.models import Appointment, StudySubject, Visit from web.tests import LoggedInTestCase from web.tests.functions import create_study_subject, create_visit, create_appointment, create_worker, \ - create_flying_team, format_form_field + create_flying_team, format_form_field, get_test_location from web.views.notifications import get_today_midnight_date logger = logging.getLogger(__name__) @@ -19,6 +19,41 @@ class AppointmentsViewTests(LoggedInTestCase): super(AppointmentsViewTests, self).setUp() create_worker(self.user, True) + def test_get_add_general_appointment(self): + #test get without visit_id + response = self.client.get(reverse('web.views.appointment_add_general')) + self.assertEqual(response.status_code, 200) + def test_get_add_appointment(self): + #test get with visit_id + subject = create_study_subject() + visit = create_visit(subject) + response = self.client.get(reverse('web.views.appointment_add', + kwargs={'visit_id': visit.id})) + self.assertEqual(response.status_code, 200) + + def test_post_add_general_appointment(self): + location = get_test_location() + form_appointment = AppointmentAddForm(user=self.user) + form_data = {} + form_data['datetime_when'] = datetime.datetime.today() + form_data['location'] = location.id + form_data['length'] = 10 + response = self.client.post(reverse('web.views.appointment_add_general'), data=form_data) + self.assertEqual(response.status_code, 302) + + def test_add_appointment(self): + subject = create_study_subject() + visit = create_visit(subject) + location = get_test_location() + form_data = {} + form_appointment = AppointmentAddForm(user=self.user) + form_data['datetime_when'] = datetime.datetime.today() + form_data['location'] = location.id + form_data['length'] = 10 + response = self.client.post(reverse('web.views.appointment_add', + kwargs={'visit_id': visit.id}), data=form_data) + self.assertEqual(response.status_code, 302) + def test_appointments_list_request(self): response = self.client.get(reverse('web.views.appointments')) self.assertEqual(response.status_code, 200) diff --git a/smash/web/views/appointment.py b/smash/web/views/appointment.py index 028c3b9f5f460b207842280968682fdadcce76ff..bc782e45a686222e32dab5465f3cbff5f158cd2b 100644 --- a/smash/web/views/appointment.py +++ b/smash/web/views/appointment.py @@ -56,6 +56,9 @@ def appointment_add(request, visit_id=None): return redirect('web.views.appointments') else: return redirect('web.views.visit_details', id=visit_id) + else: + raise ValidationError("Invalid request: Errors: {}. Non field errors: {}".format(form.errors, form.non_field_errors())) + else: form = AppointmentAddForm(user=request.user)