diff options
| author | Étienne Loks <etienne.loks@iggdrasil.net> | 2026-02-05 17:19:07 +0100 |
|---|---|---|
| committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2026-02-09 16:54:41 +0100 |
| commit | abda76b788ad5f7474b75c8c2514386e416dcdf3 (patch) | |
| tree | 1f291cfa4f9e0fea425a3435866c88f5a5b3fe63 /archaeological_finds | |
| parent | 1e5493a7a4e6eae87353ef2939efb1a5e2d4a5e0 (diff) | |
| download | Ishtar-abda76b788ad5f7474b75c8c2514386e416dcdf3.tar.bz2 Ishtar-abda76b788ad5f7474b75c8c2514386e416dcdf3.zip | |
🚑️ imports: fix concatenation of existing fields - fix concat string
Diffstat (limited to 'archaeological_finds')
| -rw-r--r-- | archaeological_finds/tests.py | 40 | ||||
| -rw-r--r-- | archaeological_finds/tests/MCC-finds-example.csv | 8 |
2 files changed, 44 insertions, 4 deletions
diff --git a/archaeological_finds/tests.py b/archaeological_finds/tests.py index dea3d6f6b..87d0a62f2 100644 --- a/archaeological_finds/tests.py +++ b/archaeological_finds/tests.py @@ -991,6 +991,46 @@ class ImportFindTest(BaseImportFindTest): # check errors self.assertEqual(len(impt.errors), 0) + def test_import_string_concat(self): + self.init_context_record() + + MCC = ImporterType.objects.get(name="MCC - Mobilier") + # column : description + col = ImporterColumn.objects.get(col_number=23, importer_type_id=MCC.pk) + col.targets.update(concat=True, concat_str=" - ") + + mcc_file = open( + settings.LIB_BASE_PATH + "archaeological_finds/tests/MCC-finds-example.csv", + "rb", + ) + file_dict = { + "imported_file": SimpleUploadedFile(mcc_file.name, mcc_file.read()), + } + post_dict = { + "importer_type": MCC.pk, + "skip_lines": 1, + "encoding": "utf-8", + "name": "init_find_import", + "csv_sep": ",", + } + form = forms_common.BaseImportForm( + data=post_dict, files=file_dict, user=self.user + ) + form.is_valid() + self.assertTrue(form.is_valid()) + impt = form.save(self.ishtar_user) + impt.conservative_import = True + impt.save() + impt.initialize() + # import 2 times the description field + impt.importation() + impt.importation() + for find in models.Find.objects.filter(imports__pk=impt.pk).all(): + sp = find.description.split(" - ") + self.assertEqual(len(sp), 2) + self.assertNotEqual(sp[0], "") + self.assertEqual(sp[0], sp[1]) + class ExportTest(FindInit, TestCase): fixtures = FIND_TOWNS_FIXTURES diff --git a/archaeological_finds/tests/MCC-finds-example.csv b/archaeological_finds/tests/MCC-finds-example.csv index 86a572657..9e73d0424 100644 --- a/archaeological_finds/tests/MCC-finds-example.csv +++ b/archaeological_finds/tests/MCC-finds-example.csv @@ -1,5 +1,5 @@ code OA,numero INSEE commune,identifiant parcelle,identifiant UE,identifiant materiel,objet lot,partage,composite,matiere,type,determination,numero contenant,nombre fragment,poids,unite poids,date decouverte,etat sanitaire,type preservation a envisager,commentaire,chronologie,localisation topographique,interet particulier,description,remontage,photo -4200,75101,XXXX,HC,1,lot,non,,terre cuite,céramique,sfq,1,76,4040,g,,sais pas,,Blah,med,,,,, -4200,75101,XXXX,H.-C.,1,lot,non,,terre cuite,céramique,qsdfsqfd,1,56,2280,g,,,,,med,,,,, -4200,59350,YY55,US17,1,lot,non,,terre cuite,céramique,sqfdsq,2,44,5210,g,,stable,,,GR,,,,, -4200,59350,YY55,US17,2,lot,non,,terre cuite & verre,céramique,sqfdsq,45,43,1500,g,,,,,,,,,,image-1.jpg +4200,75101,XXXX,HC,1,lot,non,,terre cuite,céramique,sfq,1,76,4040,g,,sais pas,,Blah,med,,,Description 1,, +4200,75101,XXXX,H.-C.,1,lot,non,,terre cuite,céramique,qsdfsqfd,1,56,2280,g,,,,,med,,,Description 2,, +4200,59350,YY55,US17,1,lot,non,,terre cuite,céramique,sqfdsq,2,44,5210,g,,stable,,,GR,,,Description 3,, +4200,59350,YY55,US17,2,lot,non,,terre cuite & verre,céramique,sqfdsq,45,43,1500,g,,,,,,,,Description 4,,image-1.jpg |
