summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--archaeological_context_records/tests.py79
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