diff options
| -rw-r--r-- | archaeological_operations/tests.py | 33 | ||||
| -rw-r--r-- | archaeological_operations/tests/MCC-operations-example-multi-col-periods.csv | 3 | ||||
| -rw-r--r-- | ishtar_common/data_importer.py | 2 | 
3 files changed, 37 insertions, 1 deletions
| diff --git a/archaeological_operations/tests.py b/archaeological_operations/tests.py index 957e5d65e..190543e3f 100644 --- a/archaeological_operations/tests.py +++ b/archaeological_operations/tests.py @@ -334,6 +334,36 @@ class ImportOperationTest(ImportTest, TestCase):          current_ope_nb = models.Operation.objects.count()          self.assertEqual(current_ope_nb, first_ope_nb + 2) +    def test_import_multi_column_concat(self): +        first_ope_nb = models.Operation.objects.count() +        importer, form = self.init_ope_import( +            'MCC-operations-example-multi-col-periods.csv') +        col = ImporterColumn.objects.create(col_number=12, +                                            importer_type_id=importer.pk) +        period_imp = ImporterColumn.objects.get( +            col_number=9, +            importer_type_id=importer.pk) +        period_target = period_imp.targets.all()[0] +        target = ImportTarget.objects.create( +            column=col, target=period_target.target, +            formater_type=period_target.formater_type, concat=True) +        importer, form = self.init_ope_import( +            'MCC-operations-example-multi-col-periods.csv') +        self.assertTrue(form.is_valid()) + +        impt = form.save(self.ishtar_user) +        impt.initialize() +        self.init_ope_targetkey(imp=impt) +        impt.importation() +        current_ope_nb = models.Operation.objects.count() + +        self.assertEqual(current_ope_nb, first_ope_nb + 2) +        modern = models.Period.objects.get(txt_idx='modern') +        for ope in models.Operation.objects.order_by("-pk")[0:2]: +            self.assertIn(modern, list(ope.periods.all())) +        target.delete() +        col.delete() +      def test_import_value_format(self):          importer, form = self.init_ope_import()          column = importer.columns.get(col_number=1) @@ -405,6 +435,9 @@ class ImportOperationTest(ImportTest, TestCase):          impt.importation()          self.assertEqual(len(impt.errors), 2)          self.assertTrue( +            "cody" in impt.errors[0]['error'] +        ) +        self.assertTrue(              "Importer configuration error" in impt.errors[0]['error'] or              "Erreur de configuration de l\'importeur" in              impt.errors[0]['error'] diff --git a/archaeological_operations/tests/MCC-operations-example-multi-col-periods.csv b/archaeological_operations/tests/MCC-operations-example-multi-col-periods.csv new file mode 100644 index 000000000..4ff031c7b --- /dev/null +++ b/archaeological_operations/tests/MCC-operations-example-multi-col-periods.csv @@ -0,0 +1,3 @@ +code OA,region,type operation,intitule operation,operateur,responsable operation,date debut terrain,date fin terrain,chronologie generale,identifiant document georeferencement,notice scientifique,chronologie generale 2 +4201,Bourgogne,Fouille programmée,Oppìdum de Paris 2,L'opérateur,,2000/01/31,2002/12/31,Age du Fer,,,modern +4200,Bourgogne,Fouille programmée,Oppìdum de Paris,L'opérateur,Jean Sui-Resp'on Sablé,2000/01/22,2002/12/31,Age du Fer & Gallo-Romain & Néolithik & Moderne,,, diff --git a/ishtar_common/data_importer.py b/ishtar_common/data_importer.py index c568f1861..6843610d4 100644 --- a/ishtar_common/data_importer.py +++ b/ishtar_common/data_importer.py @@ -1367,7 +1367,7 @@ class Importer(object):              field_names = [field_name]              force_news = [force_new] -            concats = [formater.concat] +            concats = formater.concat              concat_str = [concat_str]              for duplicate_field in formater.duplicate_fields:                  if type(duplicate_field[0]) in (list, tuple): | 
