From 4ac0768d63aa591526b9ce63ec696dc9eb494082 Mon Sep 17 00:00:00 2001 From: Carlos Vega <carlos.vega@uni.lu> Date: Mon, 22 Oct 2018 12:46:06 +0200 Subject: [PATCH] added tests and added 400 response if invalid request --- smash/web/tests/view/test_appointments.py | 39 +++++++++++++++++++++-- smash/web/views/appointment.py | 3 ++ 2 files changed, 40 insertions(+), 2 deletions(-) diff --git a/smash/web/tests/view/test_appointments.py b/smash/web/tests/view/test_appointments.py index a1544f21..e17bb743 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 028c3b9f..bc782e45 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) -- GitLab