diff options
| -rw-r--r-- | archaeological_context_records/tests.py | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/archaeological_context_records/tests.py b/archaeological_context_records/tests.py index ea29ce938..942ad83f1 100644 --- a/archaeological_context_records/tests.py +++ b/archaeological_context_records/tests.py @@ -687,6 +687,85 @@ class ContextRecordQATest(ContextRecordInit, TestCase): # not on the same operation the update has not been made self.assertNotEqual(cr_3.parcel, parcel) + def _get_default_dating_data(self): + return { + "reference": "référence", + "period_id": models.Period.objects.all()[0].pk, + "start_date": 100, + "end_date": 200, + "quality_id": models.DatingQuality.objects.all()[0].pk, + "dating_type_id": models.DatingType.objects.all()[0].pk, + "precise_dating": "Précision" + } + + def test_add_period(self): + c = Client() + cr = self.context_records[-1] + nb_datings = cr.datings.count() + pk = cr.pk + url = reverse("context-record-dating-add", args=[pk]) + response = c.get(url) + self.assertRedirects(response, '/', status_code=302) + c.login(username=self.username, password=self.password) + response = c.get(url) + self.assertEqual(response.status_code, 200) + data = self._get_default_dating_data() + response = c.post(url, data) + self.assertRedirects(response, "/success/") + self.assertEqual(cr.datings.count(), nb_datings + 1) + dating = cr.datings.order_by("-pk").all()[0] + for k in data.keys(): + self.assertEqual(data[k], getattr(dating, k)) + + def test_modify_period(self): + c = Client() + cr = self.context_records[-1] + data = self._get_default_dating_data() + data["context_record_id"] = cr.pk + dating = models.ContextRecordDating.objects.create(**data) + data.pop("context_record_id") + nb_datings = cr.datings.count() + pk = cr.pk + url = reverse("context-record-dating-modify", args=[pk, dating.pk]) + response = c.get(url) + self.assertRedirects(response, '/', status_code=302) + c.login(username=self.username, password=self.password) + response = c.get(url) + self.assertEqual(response.status_code, 200) + data["reference"] = "ref2" + data.update({ + "pk": dating.pk, + "reference": "référence2", + "period_id": models.Period.objects.all()[1].pk, + "start_date": 300, + "end_date": 400, + "quality_id": models.DatingQuality.objects.all()[1].pk, + "dating_type_id": models.DatingType.objects.all()[1].pk, + "precise_dating": "Précision2" + }) + response = c.post(url, data) + self.assertRedirects(response, "/success/") + self.assertEqual(cr.datings.count(), nb_datings) # no creation + dating = cr.datings.order_by("-pk").all()[0] + # all modification applied + for k in data.keys(): + self.assertEqual(data[k], getattr(dating, k)) + + def test_delete_period(self): + c = Client() + cr = self.context_records[-1] + data = self._get_default_dating_data() + data["context_record_id"] = cr.pk + dating = models.ContextRecordDating.objects.create(**data) + nb_datings = cr.datings.count() + url = reverse("context-record-dating-delete", args=[dating.pk]) + response = c.get(url) + self.assertRedirects(response, '/', status_code=302) + c.login(username=self.username, password=self.password) + response = c.get(url) + self.assertRedirects(response, "/success/") + self.assertEqual(cr.datings.count(), nb_datings - 1) # deleted + class ContextRecordSearchTest(ContextRecordInit, TestCase, SearchText): fixtures = CONTEXT_RECORD_TOWNS_FIXTURES |
