summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2019-05-15 17:58:59 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2019-05-15 18:00:07 +0200
commitcf1b29891bfd9b04db74ce1999530c9326c6cf0e (patch)
tree08196ddb09a0260939fd373cbb185d96286b320e
parent049fdf160fbe176c5ea753499b9e7885b3ebf302 (diff)
downloadIshtar-cf1b29891bfd9b04db74ce1999530c9326c6cf0e.tar.bz2
Ishtar-cf1b29891bfd9b04db74ce1999530c9326c6cf0e.zip
Data importer: fix bad concat parameter - test manage concat of M2M (many columns)
-rw-r--r--archaeological_operations/tests.py33
-rw-r--r--archaeological_operations/tests/MCC-operations-example-multi-col-periods.csv3
-rw-r--r--ishtar_common/data_importer.py2
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):