summaryrefslogtreecommitdiff
path: root/archaeological_operations/tests.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2023-01-13 18:03:07 +0100
committerÉtienne Loks <etienne.loks@iggdrasil.net>2023-01-13 18:03:07 +0100
commit4e964c674bf24035c0d8c26bd1ae3cd2d04632a9 (patch)
tree35f7f33b1bda216a9eb2e52854b6eb772ce0ec18 /archaeological_operations/tests.py
parent988cd8f05d9fa67cbb299ff81f7d38a650562fc1 (diff)
downloadIshtar-4e964c674bf24035c0d8c26bd1ae3cd2d04632a9.tar.bz2
Ishtar-4e964c674bf24035c0d8c26bd1ae3cd2d04632a9.zip
Syndication - test: source, show table and export config - destination, update theses config
Diffstat (limited to 'archaeological_operations/tests.py')
-rw-r--r--archaeological_operations/tests.py57
1 files changed, 56 insertions, 1 deletions
diff --git a/archaeological_operations/tests.py b/archaeological_operations/tests.py
index 04af3445a..26da94f60 100644
--- a/archaeological_operations/tests.py
+++ b/archaeological_operations/tests.py
@@ -4520,7 +4520,10 @@ class ApiTest(OperationInitTest, APITestCase):
random_operation_type = models.OperationType.objects.all()[0]
random_operation_type.available = False
random_operation_type.save()
- self.create_api_search_model()
+ api_search_model = self.create_api_search_model()
+ ope_importer = ImporterType.objects.get(slug="ishtar-operations")
+ api_search_model.export.add(ope_importer)
+
url = reverse("api-facets-operation")
response = self.client.get(
url,
@@ -4549,6 +4552,30 @@ class ApiTest(OperationInitTest, APITestCase):
break
self.assertTrue(has_type)
+ ope_key = "archaeological_operations-operation-"
+ site_key = "archaeological_operations-archaeologicalsite-"
+ self.assertIn("config", j)
+ self.assertIn("search_columns", j["config"])
+ columns = j["config"]["search_columns"].split("||")
+ ope_columns = [c for c in columns if c.startswith(ope_key)]
+ site_columns = [c for c in columns if c.startswith(site_key)]
+ self.assertFalse(site_columns) # null
+ self.assertTrue(ope_columns) # not null
+ self.assertEqual(len(columns), len(ope_columns))
+
+ self.assertIn("search_columns_label", j["config"])
+ columns_label = j["config"]["search_columns"].split("||")
+ ope_columns_labels = [c for c in columns if c.startswith(ope_key)]
+ site_columns_labels = [c for c in columns if c.startswith(site_key)]
+ self.assertFalse(site_columns_labels) # null
+ self.assertTrue(ope_columns_labels) # not null
+ self.assertEqual(len(columns_label), len(ope_columns_labels))
+
+ self.assertIn("exports", j["config"])
+ self.assertEqual(j["config"]["exports"], ope_key + ope_importer.slug)
+ self.assertIn("exports_label", j["config"])
+ self.assertEqual(j["config"]["exports_label"], ope_key + ope_importer.name)
+
self.create_api_search_model(
app_label="archaeological_operations", model="archaeologicalsite"
)
@@ -4562,6 +4589,24 @@ class ApiTest(OperationInitTest, APITestCase):
j = json.loads(response.content.decode())
self.assertIn("archaeological_operations.archaeologicalsite", j)
+ self.assertIn("config", j)
+ self.assertIn("search_columns", j["config"])
+ columns = j["config"]["search_columns"].split("||")
+ ope_columns = [c for c in columns if c.startswith(ope_key)]
+ site_columns = [c for c in columns if c.startswith(site_key)]
+ self.assertTrue(ope_columns) # not null
+ self.assertTrue(site_columns) # not null
+ self.assertEqual(len(columns), len(ope_columns) + len(site_columns))
+
+ self.assertIn("search_columns_label", j["config"])
+ columns_label = j["config"]["search_columns"].split("||")
+ ope_columns_labels = [c for c in columns if c.startswith(ope_key)]
+ site_columns_labels = [c for c in columns if c.startswith(site_key)]
+ self.assertTrue(ope_columns_labels) # not null
+ self.assertTrue(site_columns_labels) # not null
+ self.assertEqual(len(columns_label),
+ len(ope_columns_labels) + len(site_columns_labels))
+
def _get_source(self):
src, __ = models_rest.ApiExternalSource.objects.get_or_create(
url="http://localhost", name="Default source", key="xxx"
@@ -4626,6 +4671,11 @@ class ApiTest(OperationInitTest, APITestCase):
self._mock_request(mock_get)
response = self.client.post(url, params, follow=True)
+ source = models_rest.ApiExternalSource.objects.get(pk=source.pk)
+ # table and export config updated
+ for k in ("search_columns", "search_columns_label", "exports", "exports_label"):
+ self.assertTrue(getattr(source, k))
+
result = {"created": "XXXXX"}
msg_created = str(_(f"{result['created']} matches created")).replace(
result["created"], ""
@@ -4635,6 +4685,11 @@ class ApiTest(OperationInitTest, APITestCase):
self._mock_request(mock_get, "external_source_types_2.json")
response = self.client.post(url, params, follow=True)
+ source = models_rest.ApiExternalSource.objects.get(pk=source.pk)
+ # table and export config reinit because no config data provided
+ for k in ("search_columns", "search_columns_label", "exports", "exports_label"):
+ self.assertTrue(getattr(source, k))
+
content = response.content.decode()
self.assertNotIn(msg_created, content) # no new creation
missing_search_models = "archaeological_operations.strangeoperation"