From b8e3ffb9bbd82686c34310e8aac3352b7343733d Mon Sep 17 00:00:00 2001
From: Piotr Gawron <piotr.gawron@uni.lu>
Date: Wed, 29 Mar 2017 09:48:01 +0200
Subject: [PATCH] test for editing subject

---
 smash/web/tests/test_view_subjects.py | 26 +++++++++++++++++++++++++-
 1 file changed, 25 insertions(+), 1 deletion(-)

diff --git a/smash/web/tests/test_view_subjects.py b/smash/web/tests/test_view_subjects.py
index 5d822e79..d17229ea 100644
--- a/smash/web/tests/test_view_subjects.py
+++ b/smash/web/tests/test_view_subjects.py
@@ -6,7 +6,7 @@ from django.test import TestCase
 from django.urls import reverse
 
 from functions import create_subject, create_worker, get_test_location
-from web.forms import SubjectAddForm
+from web.forms import SubjectAddForm, SubjectEditForm
 from web.models import Subject
 from web.models.constants import SEX_CHOICES_MALE, SUBJECT_TYPE_CHOICES_CONTROL
 from web.views.notifications import get_today_midnight_date
@@ -33,6 +33,30 @@ class SubjectsViewTests(TestCase):
         # check if screening number prefix is there
         self.assertTrue("value=\"X-\"" in response.content)
 
+    def test_render_subject_edit(self):
+        subject = create_subject()
+
+        response = self.client.get(reverse('web.views.subject_edit', kwargs={'id': subject.id}))
+        self.assertEqual(response.status_code, 200)
+
+    def test_save_subject_edit(self):
+        subject = create_subject()
+        form_subject = SubjectEditForm(instance=subject)
+        form_data = {}
+        for key, value in form_subject.initial.items():
+            if value is not None:
+                form_data[key] = value
+
+        form_data['dead']="True"
+        form_data['resigned']="True"
+        response = self.client.post(
+            reverse('web.views.subject_edit', kwargs={'id': subject.id}), data=form_data)
+
+        self.assertEqual(response.status_code, 302)
+        updated_subject = Subject.objects.filter(id=subject.id)[0]
+        self.assertTrue(updated_subject.dead)
+        self.assertTrue(updated_subject.resigned)
+
     def test_subjects_add_2(self):
         self.worker.screening_number_prefix = "X"
         self.worker.save()
-- 
GitLab