summaryrefslogtreecommitdiff
path: root/archaeological_finds/tests.py
diff options
context:
space:
mode:
Diffstat (limited to 'archaeological_finds/tests.py')
-rw-r--r--archaeological_finds/tests.py47
1 files changed, 46 insertions, 1 deletions
diff --git a/archaeological_finds/tests.py b/archaeological_finds/tests.py
index d5f763467..c98da7951 100644
--- a/archaeological_finds/tests.py
+++ b/archaeological_finds/tests.py
@@ -60,6 +60,7 @@ from ishtar_common.models import (
Area,
Document,
)
+from archaeological_operations.models import AdministrativeAct
from archaeological_context_records.models import (
Period,
Dating,
@@ -94,7 +95,7 @@ from ishtar_common.tests import (
GenericSerializationTest,
SearchText,
)
-from archaeological_operations.tests import ImportTest, create_operation
+from archaeological_operations.tests import ImportTest, create_operation, create_administrativact
from archaeological_context_records.tests import ContextRecordInit
from archaeological_operations.serializers import operation_serialization
@@ -1068,6 +1069,50 @@ class FindTest(FindInit, TestCase):
self.client = Client()
self.client.login(username=self.username, password=self.password)
+ def test_cascade_delete_operation(self):
+ # test delete an operation
+ find = self.finds[0]
+ find_id = find.id
+ nb_f = models.Find.objects.count()
+ bf = find.base_finds.all()[0]
+ bf_id = bf.id
+ nb_bf = models.BaseFind.objects.count()
+ cr = bf.context_record
+ cr_id = cr.id
+ nb_cr = ContextRecord.objects.count()
+ operation = cr.operation
+ operation_id = operation.id
+ nb_ope = Operation.objects.count()
+ # attach an admin act
+ __, admin_acts = create_administrativact(self.user, operation)
+ admin_act_id = admin_acts[0].id
+ nb_admin_act = AdministrativeAct.objects.count()
+ operation.delete()
+ self.assertEqual(Operation.objects.filter(pk=operation_id).count(), 0)
+ self.assertEqual(Operation.objects.count(), nb_ope - 1)
+ self.assertEqual(AdministrativeAct.objects.filter(pk=admin_act_id).count(), 0)
+ self.assertEqual(AdministrativeAct.objects.count(), nb_admin_act - 1)
+ self.assertEqual(ContextRecord.objects.filter(pk=cr_id).count(), 0)
+ self.assertEqual(ContextRecord.objects.count(), nb_cr - 1)
+ self.assertEqual(models.BaseFind.objects.filter(pk=bf_id).count(), 0)
+ self.assertEqual(models.BaseFind.objects.count(), nb_bf - 1)
+ self.assertEqual(models.Find.objects.filter(pk=find_id).count(), 0)
+ self.assertEqual(models.Find.objects.count(), nb_f - 1)
+
+ def test_cascade_delete_find(self):
+ # test delete associated base find
+ find = self.finds[0]
+ find_id = find.id
+ nb_f = models.Find.objects.count()
+ bf = find.base_finds.all()[0]
+ bf_id = bf.id
+ nb_bf = models.BaseFind.objects.count()
+ find.delete()
+ self.assertEqual(models.BaseFind.objects.filter(pk=bf_id).count(), 0)
+ self.assertEqual(models.BaseFind.objects.count(), nb_bf - 1)
+ self.assertEqual(models.Find.objects.filter(pk=find_id).count(), 0)
+ self.assertEqual(models.Find.objects.count(), nb_f - 1)
+
def test_external_id(self):
find = self.finds[0]
base_find = find.base_finds.all()[0]