Skip to content
Snippets Groups Projects
Commit 707bf512 authored by Piotr Gawron's avatar Piotr Gawron
Browse files

id changed to subject_id

parent f55c9b79
No related branches found
No related tags found
1 merge request!350Additional pylint checks
Pipeline #45889 failed
......@@ -35,31 +35,56 @@ class AppointmentsViewTests(LoggedInTestCase):
self.assertEqual(response.status_code, 200)
def test_post_add_general_appointment(self):
form_data = self.create_add_appointment_form_data()
response = self.client.post(reverse('web.views.appointment_add_general'), data=form_data)
self.assertEqual(response.status_code, 302)
def create_add_appointment_form_data(self):
location = get_test_location()
form_data = {}
form_data['datetime_when'] = datetime.datetime.today()
form_data['location'] = location.id
form_data['length'] = 10
form_data['comment'] = 'A comment with weird letters such as á è ü ñ ô'
response = self.client.post(reverse('web.views.appointment_add_general'), data=form_data)
self.assertEqual(response.status_code, 302)
return form_data
def test_add_appointment(self):
count = Appointment.objects.count()
subject = create_study_subject()
visit = create_visit(subject)
location = get_test_location()
form_data = {}
form_data['datetime_when'] = datetime.datetime.today()
form_data['location'] = location.id
form_data['comment'] = 'A comment with weird letters such as á è ü ñ ô'
form_data['length'] = 10
form_data = self.create_add_appointment_form_data()
response = self.client.post(reverse('web.views.appointment_add', kwargs={'visit_id': visit.id}),
data=form_data,
follow=True)
self.assertEqual(response.status_code, 200)
self.assertEqual(count + 1, Appointment.objects.count())
def test_add_appointment_to_finished_visit(self):
count = Appointment.objects.count()
subject = create_study_subject()
visit = create_visit(subject)
visit.is_finished = True
visit.save()
form_data = self.create_add_appointment_form_data()
response = self.client.post(reverse('web.views.appointment_add', kwargs={'visit_id': visit.id}),
data=form_data,
follow=True)
self.assertEqual(response.status_code, 200)
self.assertEqual(count, Appointment.objects.count())
def test_add_appointment_to_deceased_subject(self):
count = Appointment.objects.count()
subject = create_study_subject()
subject.subject.dead = True
subject.subject.save()
visit = create_visit(subject)
form_data = self.create_add_appointment_form_data()
response = self.client.post(reverse('web.views.appointment_add', kwargs={'visit_id': visit.id}),
data=form_data,
follow=True)
self.assertEqual(response.status_code, 200)
self.assertEqual(count, Appointment.objects.count())
def test_appointments_list_request(self):
response = self.client.get(reverse('web.views.appointments'))
self.assertEqual(response.status_code, 200)
......@@ -84,6 +109,19 @@ class AppointmentsViewTests(LoggedInTestCase):
self.assertEqual(new_status, updated_appointment.status)
self.assertEqual(new_last_name, updated_subject.subject.last_name)
def test_edit_appointments_for_deceased_subject(self):
subject = create_study_subject()
subject.subject.dead = True
subject.subject.save()
visit = create_visit(subject)
appointment = create_appointment(visit, when=timezone.now())
form_data = self.prepare_form(appointment, subject)
response = self.client.get(
reverse('web.views.appointment_edit', kwargs={'appointment_id': appointment.id}), data=form_data,
follow=True)
self.assertEqual(response.status_code, 200)
self.assertContains(response, "Appointment cannot be edited")
def test_appointments_edit_from_visit(self):
visit = create_visit()
appointment = create_appointment(visit, when=timezone.now())
......
......@@ -55,12 +55,12 @@ class SubjectsViewTests(LoggedInWithWorkerTestCase):
visit = create_visit(self.study_subject)
create_appointment(visit)
response = self.client.get(reverse('web.views.subject_visit_details', kwargs={'id': self.study_subject.id}))
response = self.client.get(reverse('web.views.subject_visit_details', kwargs={'subject_id': self.study_subject.id}))
self.assertEqual(response.status_code, 200)
self.assertFalse("Add visit".encode('utf8') in response.content)
def test_render_subject_visit_details_without_visit(self):
response = self.client.get(reverse('web.views.subject_visit_details', kwargs={'id': self.study_subject.id}))
response = self.client.get(reverse('web.views.subject_visit_details', kwargs={'subject_id': self.study_subject.id}))
self.assertEqual(response.status_code, 200)
self.assertTrue("Add visit".encode('utf8') in response.content)
......
......@@ -75,6 +75,23 @@ class VisitViewTests(LoggedInTestCase):
response = self.client.get(reverse('web.views.visit_add', kwargs={'subject_id': study_subject.id}))
self.assertEqual(response.status_code, 200)
def test_render_add_visit_for_deceased(self):
study_subject = create_study_subject()
study_subject.subject.dead=True
study_subject.subject.save()
response = self.client.get(reverse('web.views.visit_add', kwargs={'subject_id': study_subject.id}), follow=True)
self.assertEqual(response.status_code, 200)
self.assertContains(response, "Visit cannot be added")
def test_render_add_visit_for_subject_with_unfinished_visit(self):
study_subject = create_study_subject()
create_visit(study_subject)
response = self.client.get(reverse('web.views.visit_add', kwargs={'subject_id': study_subject.id}), follow=True)
self.assertEqual(response.status_code, 200)
self.assertContains(response, "subject has unfinished visits")
def test_save_add_visit(self):
visit_count = Visit.objects.all().count()
subject = create_study_subject()
......
......@@ -87,7 +87,7 @@ urlpatterns = [
url(r'^subjects/voucher_expiry', views.subject.subject_voucher_expiry, name='web.views.subject_voucher_expiry'),
url(r'^study/(?P<study_id>\d+)/subjects/add$', views.subject.subject_add, name='web.views.subject_add'),
url(r'^subjects/subject_visit_details/(?P<id>\d+)$', views.subject.subject_visit_details,
url(r'^subjects/subject_visit_details/(?P<subject_id>\d+)$', views.subject.subject_visit_details,
name='web.views.subject_visit_details'),
url(r'^subjects/edit/(?P<subject_id>\d+)$', views.subject.subject_edit, name='web.views.subject_edit'),
url(r'^subjects/(?P<pk>\d+)/delete$', views.subject.SubjectDeleteView.as_view(),
......
......@@ -45,11 +45,11 @@ def appointment_add(request, visit_id=None):
visit_end = visit.datetime_end.strftime("%Y-%m-%d")
if visit.is_finished:
messages.error(request, "Appointment cannot be added because the visit is finished")
return redirect('web.views.subject_visit_details', id=visit.subject.id)
return redirect('web.views.subject_visit_details', subject_id=visit.subject.id)
if not visit.subject.can_schedule():
messages.error(request,
"Appointment cannot be added because the subject status is: {}".format(visit.subject.status))
return redirect('web.views.subject_visit_details', id=visit.subject.id)
return redirect('web.views.subject_visit_details', subject_id=visit.subject.id)
else:
visit_start = datetime.datetime.today().strftime("%Y-%m-%d")
visit_end = datetime.datetime.today().strftime("%Y-%m-%d")
......@@ -84,7 +84,7 @@ def appointment_edit(request, appointment_id):
if not the_appointment.visit.subject.can_schedule():
messages.error(request, "Appointment cannot be edited because the subject status is: {}".format(
the_appointment.visit.subject.status))
return redirect('web.views.subject_visit_details', id=the_appointment.visit.subject.id)
return redirect('web.views.subject_visit_details', subject_id=the_appointment.visit.subject.id)
if request.method == 'POST':
appointment_form = AppointmentEditForm(request.POST,
......
......@@ -231,8 +231,8 @@ def persist_custom_file_fields(request, study_subject):
study_subject.set_custom_data_value(CustomStudySubjectField.objects.get(pk=field_id), file)
def subject_visit_details(request, id): # pylint: disable=redefined-builtin
study_subject_to_be_viewed = get_object_or_404(StudySubject, id=id)
def subject_visit_details(request, subject_id):
study_subject_to_be_viewed = get_object_or_404(StudySubject, id=subject_id)
visits = study_subject_to_be_viewed.visit_set.order_by("-visit_number").all()
visits_data = []
allow_add_visit = True
......@@ -251,4 +251,4 @@ def subject_visit_details(request, id): # pylint: disable=redefined-builtin
allow_add_visit = False
return wrap_response(request, 'subjects/visit_details.html',
{'display': visits_data, "id": id, "allow_add_visit": allow_add_visit})
{'display': visits_data, "id": subject_id, "allow_add_visit": allow_add_visit})
......@@ -139,11 +139,11 @@ def visit_add(request, subject_id=-1):
if Visit.objects.filter(subject=subject, is_finished=False).count() > 0:
messages.add_message(request, messages.WARNING,
'The subject has unfinished visits, please, finish them before adding new visits.')
return redirect('web.views.subject_visit_details', id=subject_id)
return redirect('web.views.subject_visit_details', subject_id=subject_id)
if not subject.can_schedule():
messages.error(request, "Visit cannot be added because the subject status is: {}".format(subject.status))
return redirect('web.views.subject_visit_details', id=subject_id)
return redirect('web.views.subject_visit_details', subject_id=subject_id)
if request.method == 'POST':
form = VisitAddForm(request.POST, request.FILES)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment