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.py63
1 files changed, 63 insertions, 0 deletions
diff --git a/archaeological_finds/tests.py b/archaeological_finds/tests.py
index b4612619b..b0a0af7dc 100644
--- a/archaeological_finds/tests.py
+++ b/archaeological_finds/tests.py
@@ -34,6 +34,7 @@ from django.db.utils import IntegrityError
from django.test.client import Client
from django.urls import reverse
from ishtar_common.models import (
+ ImporterGroup,
ImporterType,
IshtarUser,
ImporterColumn,
@@ -694,6 +695,68 @@ class ImportFindTest(ImportTest, FindInit, TestCase):
base_find = models.BaseFind.objects.get(pk=base_find.pk)
self.assertEqual(base_find.main_geodata_id, new[0].pk)
+ def test_group_import(self):
+ root = os.path.join(settings.LIB_BASE_PATH, "archaeological_finds", "tests")
+ importer_filename = os.path.join(root, "importer-group.zip")
+ self.restore_serialized(importer_filename)
+ imp_group = ImporterGroup.objects.get(slug="chantier-des-depots")
+ imp_file = open(os.path.join(root, "importer-group.csv"), "rb")
+ file_dict = {
+ "imported_file": SimpleUploadedFile(imp_file.name, imp_file.read())
+ }
+ post_dict = {
+ "importer_type": imp_group.pk,
+ "name": "find_group_import",
+ "encoding": "utf-8",
+ "skip_lines": 1,
+ "csv_sep": ",",
+ }
+ form = forms_common.NewImportGroupForm(
+ data=post_dict, files=file_dict, user=self.user
+ )
+ self.assertFalse(form.is_valid())
+ self.assertIn(str(_("This importer need a document archive.")), form.errors["__all__"])
+ imp_media = open(os.path.join(root, "importer-group-media.zip"), "rb")
+ file_dict["imported_images"] = SimpleUploadedFile(imp_media.name, imp_media.read())
+ form = forms_common.NewImportGroupForm(
+ data=post_dict, files=file_dict, user=self.user
+ )
+ self.assertTrue(form.is_valid())
+ impt = form.save(self.ishtar_user)
+ impt.initialize()
+
+ Operation.objects.get_or_create(
+ code_patriarche="123456",
+ operation_type=OperationType.objects.all()[0]
+ )
+ wt, __ = WarehouseType.objects.get_or_create(label="WT", txt_idx="WT")
+ w, __ = Warehouse.objects.get_or_create(
+ external_id="warh",
+ defaults={"name": "Warehouse test", "warehouse_type": wt},
+ )
+ div1, __ = ContainerType.objects.get_or_create(label="Div1", txt_idx="DIV1")
+ div2, __ = ContainerType.objects.get_or_create(label="Div2", txt_idx="DIV2")
+ WarehouseDivisionLink.objects.get_or_create(
+ warehouse=w, container_type=div1, order=10
+ )
+ WarehouseDivisionLink.objects.get_or_create(
+ warehouse=w, container_type=div2, order=20
+ )
+ ContainerType.objects.get_or_create(label="CT", txt_idx="CT")
+
+ nb_base_find = models.BaseFind.objects.count()
+ nb_find = models.Find.objects.count()
+ nb_container = Container.objects.count()
+ nb_docs = Document.objects.count()
+
+ impt.importation()
+
+ self.assertEqual(models.BaseFind.objects.count(), nb_base_find + 1)
+ self.assertEqual(models.Find.objects.count(), nb_find + 1)
+ self.assertEqual(Container.objects.count(), nb_container + 3) # 1 new container + 2 divisions
+ self.assertEqual(Document.objects.count(), nb_docs + 1)
+ self.assertFalse(any(imp.error_file for imp in impt.imports.all()), msg="Error on group import")
+
def test_mcc_import_finds(self):
self.init_context_record()