summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--archaeological_finds/tests.py36
-rw-r--r--ishtar_common/views_item.py6
2 files changed, 40 insertions, 2 deletions
diff --git a/archaeological_finds/tests.py b/archaeological_finds/tests.py
index 2cf184561..c36327bae 100644
--- a/archaeological_finds/tests.py
+++ b/archaeological_finds/tests.py
@@ -18,6 +18,7 @@
# See the file COPYING for details.
from copy import deepcopy
import csv
+from io import StringIO
import json
import os
import shutil
@@ -1004,6 +1005,41 @@ class ImportFindTest(BaseImportFindTest):
self.assertEqual(len(impt.errors), 0)
+class ExportTest(FindInit, TestCase):
+ fixtures = FIND_TOWNS_FIXTURES
+
+ def setUp(self):
+ super().setUp()
+ self.username, self.password, self.user = create_superuser()
+
+ def test_ishtar_export_find(self):
+ self.create_finds(data={"label": "1234"})
+ self.create_finds(data={"label": "567"})
+ MCC = ImporterType.objects.get(name="MCC - Mobilier")
+ c = Client()
+ url = reverse(
+ "get-by-importer", kwargs={"slug": MCC.slug, "type": "csv"}
+ )
+ response = c.get(url)
+ # no result when no authentication
+ self.assertTrue(not response.content)
+ c.login(username=self.username, password=self.password)
+ response = c.get(url)
+ ENCODING = settings.ENCODING or "utf-8"
+ rows = list(csv.reader(StringIO(response.content.decode(ENCODING))))
+ # one header + two find
+ self.assertEqual(len(rows), 3)
+ row_cr = rows[1]
+ for row in rows[1:]:
+ self.assertEqual(row[0], "1")
+ self.assertEqual(row[1], "12345")
+ self.assertEqual(row[2], "A1")
+ self.assertEqual(row[3], "Context record")
+ self.assertEqual(row[4], "Base find")
+ self.assertEqual(rows[1][11], "1234")
+ self.assertEqual(rows[2][11], "567")
+
+
class ImportFindLiveServerTest(LiveServerTestCase, BaseImportFindTest):
def setUp(self):
diff --git a/ishtar_common/views_item.py b/ishtar_common/views_item.py
index 3a2fb8136..82548932f 100644
--- a/ishtar_common/views_item.py
+++ b/ishtar_common/views_item.py
@@ -3216,8 +3216,10 @@ def get_item(
if len(data[1:]) <= idx + delta:
break
val = data[1:][idx + delta]
- if col_name and "|" in col_name[0]:
- for delta_idx in range(len(col_name[0].split("|")) - 1):
+ ccol_name = col_name[0] if isinstance(col_name, (list, tuple)) else col_name
+ if ccol_name and "|" in ccol_name:
+ nb_sub_cols = len(ccol_name.split("|"))
+ for delta_idx in range(nb_sub_cols - 1):
delta += 1
val += data[1:][idx + delta]
row.append(val)