diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2019-03-27 16:17:07 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2019-04-24 19:41:37 +0200 |
commit | f8ce8229c995cfe891927a368d35dc74f7c84d35 (patch) | |
tree | ec59521a9c454faef7bf4af91dc13ca4938596fd /archaeological_operations | |
parent | 68c7adede80eeced7adac9423680fa1abe2c9ff9 (diff) | |
download | Ishtar-f8ce8229c995cfe891927a368d35dc74f7c84d35.tar.bz2 Ishtar-f8ce8229c995cfe891927a368d35dc74f7c84d35.zip |
CSV import: manage semi-colon as separator
Diffstat (limited to 'archaeological_operations')
-rw-r--r-- | archaeological_operations/tests.py | 26 | ||||
-rw-r--r-- | archaeological_operations/tests/MCC-operations-example-semi-colon.csv | 3 |
2 files changed, 24 insertions, 5 deletions
diff --git a/archaeological_operations/tests.py b/archaeological_operations/tests.py index 6781cf531..3f659ef3b 100644 --- a/archaeological_operations/tests.py +++ b/archaeological_operations/tests.py @@ -115,7 +115,8 @@ class ImportTest(object): tg.is_set = True tg.save() - def init_ope_import(self, filename='MCC-operations-example.csv'): + def init_ope_import(self, filename='MCC-operations-example.csv', + sep=u","): mcc_operation = ImporterType.objects.get(name=u"MCC - Opérations") mcc_operation_file = open( settings.ROOT_PATH + @@ -126,7 +127,7 @@ class ImportTest(object): group, c = TargetKeyGroup.objects.get_or_create(name="My group") post_dict = {'importer_type': mcc_operation.pk, 'skip_lines': 1, "encoding": 'utf-8', "name": 'init_ope_import', - "associated_group": group.pk} + "associated_group": group.pk, "csv_sep": sep} form = forms_common.NewImportForm(data=post_dict, files=file_dict, user=self.user) form.is_valid() @@ -222,7 +223,8 @@ class ImportTest(object): file_dict = {'imported_file': SimpleUploadedFile(mcc_file.name, mcc_file.read())} post_dict = {'importer_type': mcc_parcel.pk, 'skip_lines': 1, - "encoding": 'utf-8', "name": 'init_parcel_import'} + "encoding": 'utf-8', "name": 'init_parcel_import', + "csv_sep": u","} form = forms_common.NewImportForm(data=post_dict, files=file_dict, user=self.user) form.is_valid() @@ -244,7 +246,8 @@ class ImportTest(object): 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_context_record_import'} + "encoding": 'utf-8', "name": 'init_context_record_import', + 'csv_sep': u","} form = forms_common.NewImportForm(data=post_dict, files=file_dict, user=self.user) form.is_valid() @@ -318,6 +321,19 @@ class ImportOperationTest(ImportTest, TestCase): def test_import_bad_encoding(self): self.init_ope_import('MCC-operations-example-bad-encoding.csv') + def test_import_semi_colon_sep(self): + first_ope_nb = models.Operation.objects.count() + importer, form = self.init_ope_import( + 'MCC-operations-example-semi-colon.csv', sep=u";") + self.assertTrue(form.is_valid()) + impt = form.save(self.ishtar_user) + impt.initialize() + self.init_ope_targetkey(imp=impt) + impt.importation() + # new operations have now been imported + current_ope_nb = models.Operation.objects.count() + self.assertEqual(current_ope_nb, first_ope_nb + 2) + def test_keys_limitation(self): # each key association associated to the import init_ope_number = models.Operation.objects.count() @@ -537,7 +553,7 @@ class ImportDocumentTest(ImportTest, TestCase): group, c = TargetKeyGroup.objects.get_or_create(name="My group") post_dict = {'importer_type': doc_import.pk, 'skip_lines': 1, "encoding": 'utf-8', "name": 'init_ope_import', - "associated_group": group.pk} + "associated_group": group.pk, "csv_sep": u","} form = forms_common.NewImportForm(data=post_dict, files=file_dict, user=self.user) form.is_valid() diff --git a/archaeological_operations/tests/MCC-operations-example-semi-colon.csv b/archaeological_operations/tests/MCC-operations-example-semi-colon.csv new file mode 100644 index 000000000..f94ab5005 --- /dev/null +++ b/archaeological_operations/tests/MCC-operations-example-semi-colon.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 +4201;Bourgogne;Fouille programmée;Oppìdum de Paris 2;L'opérateur;;2000/01/31;2002/12/31;Age du Fer;; +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;; |