From 9111fb8a13f56bb16beaf7e20392b756e29d6d34 Mon Sep 17 00:00:00 2001
From: Florian Spreckelsen <f.spreckelsen@inidscale.com>
Date: Tue, 23 Jan 2024 15:52:07 +0100
Subject: [PATCH] TST: Reduce problematic records to the minimum

---
 integrationtests/test_issues.py | 63 +++++++--------------------------
 1 file changed, 13 insertions(+), 50 deletions(-)

diff --git a/integrationtests/test_issues.py b/integrationtests/test_issues.py
index 1de6e807..61996031 100644
--- a/integrationtests/test_issues.py
+++ b/integrationtests/test_issues.py
@@ -220,28 +220,8 @@ def test_indiscale_113(clear_database):
 
     # Create and insert minimal datamodel
     datamodel_str = """
-Dataset:
-  recommended_properties:
-    Title:
-      datatype: TEXT
-    Event:
-Published Dataset:
-  inherit_from_suggested:
-    - Dataset
-  obligatory_properties:
-    DOI:
-      datatype: TEXT
 Event:
-  obligatory_properties:
-    Start datetime:
-      datatype: DATETIME
-    longitude:
-      datatype: DOUBLE
-    latitude:
-      datatype: DOUBLE
   recommended_properties:
-    label:
-      datatype: TEXT
     Basis:
     Campaign:
 Basis:
@@ -252,16 +232,10 @@ Campaign:
     model = parse_model_from_string(datamodel_str)
     model.sync_data_model(noquestion=True)
 
-    # Register identifiables for Dataset (title), Published Dataset (DOI), Event
-    # (Start datetime, latitude, longitude, label), Basis (name), and Campaign
-    # (name).
+    # Register identifiables, everything is identified by name
     ident = CaosDBIdentifiableAdapter()
-    ident.register_identifiable("Dataset", db.RecordType().add_parent(
-        name="Dataset").add_property(name="title"))
-    ident.register_identifiable("Published Dataset", db.RecordType(
-    ).add_parent(name="Published Dataset").add_property(name="DOI"))
-    ident.register_identifiable("Event", db.RecordType().add_parent(name="Event").add_property(name="longitude").add_property(
-        name="latitude").add_property(name="Start datetime").add_property(name="label"))
+    ident.register_identifiable("Event", db.RecordType().add_parent(
+        name="Event").add_property(name="name"))
     ident.register_identifiable("Basis", db.RecordType().add_parent(
         name="Basis").add_property(name="name"))
     ident.register_identifiable("Campaign", db.RecordType().add_parent(
@@ -269,34 +243,23 @@ Campaign:
 
     crawler = Crawler(identifiableAdapter=ident)
 
-    # Add records: ds_parent references ds_child references event references
-    # basis and campaign, campaign references basis.
+    # Add records: event references basis and campaign, campaign references
+    # basis.
     basis = db.Record(name="Poseidon").add_parent(name="Basis")
-    campaign = db.Record(name="POS386").add_parent(name="Campaign").add_property(name="Basis", value=basis)
-    event = db.Record(name="GeoB13952").add_parent(name="Event").add_property(name="label", value="GeoB13952")
-    event.add_property(name="Start datetime", value="2009-07-03T07:52:36")
-    event.add_property(name="longitude", value=7.22225)
-    event.add_property(name="latitude", value=43.6438)
+    campaign = db.Record(name="POS386").add_parent(
+        name="Campaign").add_property(name="Basis", value=basis)
+    event = db.Record(name="GeoB13952").add_parent(name="Event")
     event.add_property(name="Basis", value=basis)
     event.add_property(name="Campaign", value=campaign)
-    ds_child = db.Record().add_parent(name="Published Dataset")
-    ds_child.add_property(name="Title", value="Child title")
-    ds_child.add_property(name="DOI", value="https://doi.org/10.1594/PANGAEA.882184")
-    ds_child.add_property(name="Event", value=[event], datatype=db.LIST("Event"))
-    ds_parent = db.Record().add_parent(name="Published Dataset")
-    ds_parent.add_property(name="Title", value="Parent title")
-    ds_parent.add_property(name="DOI", value="https://doi.org/10.1594/PANGAEA.882187")
-    ds_parent.add_property(name="Dataset", datatype=db.LIST("Dataset"), value=ds_child)
-
-    # The two lowest references need to exist in DB
+
+    # basis and campaign already exist in the db
     db.Container().extend([basis, campaign]).insert()
     # redefine to trigger resolving
     basis = db.Record(name="Poseidon").add_parent(name="Basis")
-    campaign = db.Record(name="POS386").add_parent(name="Campaign").add_property(name="Basis", value=basis)
-    # multiples are necessary
-    # recs = [ds_parent, ds_child, event, event, ds_child, event, basis, campaign]
+    campaign = db.Record(name="POS386").add_parent(
+        name="Campaign").add_property(name="Basis", value=basis)
     recs = [event, basis, campaign]
-    
+
     ins, ups = crawler.synchronize(crawled_data=recs, unique_names=False)
     # There is only two datasets and one event to be inserted
     assert len(ins) == 3
-- 
GitLab