diff options
Diffstat (limited to 'archaeological_finds/tests.py')
-rw-r--r-- | archaeological_finds/tests.py | 47 |
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] |