From 29541a919e69596575a99b12598d51e4ab04f2ce Mon Sep 17 00:00:00 2001
From: Romin Benfer <romin.benfer@rwth-aachen.de>
Date: Tue, 19 Jul 2022 18:00:06 +0200
Subject: [PATCH] Fixed empty datatype metadata fields

---
 src/coscine/object.py |  7 +++++--
 src/tests/test.py     | 35 +++++++++++++++++++++++------------
 2 files changed, 28 insertions(+), 14 deletions(-)

diff --git a/src/coscine/object.py b/src/coscine/object.py
index f449700..d20a3dc 100644
--- a/src/coscine/object.py
+++ b/src/coscine/object.py
@@ -103,12 +103,15 @@ class MetadataForm(InputForm):
 			properties = self.properties(key)
 			metadata[properties.path] = []
 			for value in values:
-				metadata[properties.path].append({
+				entry = {
 					"value": value,
 					"datatype": properties.datatype \
 						if properties.datatype else properties.vocabulary,
 					"type": "uri" if properties.vocabulary else "literal"
-				})
+				}
+				if not entry["datatype"]:
+					del entry["datatype"]
+				metadata[properties.path].append(entry)
 
 		# Check for missing required fields
 		if len(missing) > 0:
diff --git a/src/tests/test.py b/src/tests/test.py
index 4030970..40b608e 100644
--- a/src/tests/test.py
+++ b/src/tests/test.py
@@ -9,19 +9,30 @@ def main():
 	cfg = coscine.Config()
 	logger = coscine.Logger(True)
 	client = coscine.Client(cfg.token, "en", logger)
-	project = client.project("MLQS")
-	resource = project.resource("RessourcenNameS3")
+	project = client.project("Solaris")
+	resource = project.resource("Merfish")
 	metadata = resource.metadata()
-	metadata["Creator"] = "Dr. Akula"
-	metadata["Title"] = "Blutabnahme 101"
-	metadata["Production Date"] = "2022-01-01"
-	resource.upload("file.py", "test.py", metadata)
-	#object = resource.objects()[0]
-	#form = object.form()
-	#print(form)
-	#object.update(form)
-	#print(object)
-	#object.download()
+	metadata["ID"] = "123456789"
+	metadata["Date"] = "2022-07-09"
+	metadata["User"] = "Willy Wonkeeeea"
+	metadata["Species"] = "Human"
+	metadata["Tissue"] = "Kidney"
+	metadata["Preservation"] = "Cryo"
+	metadata["Sample ID"] = "123456"
+	metadata["Transcript Nr."] = "12345"
+	metadata["Cell Nr."] = "1234335"
+	metadata["Probe Nr."] = "1234"
+	metadata["MD5 checksum"] = "dqwnddiqu2iu2gdi2gidgi23djwjdjws"
+	metadata = metadata.generate()
+#	del metadata["https://purl.org/coscine/terms/72ec164a-c261-4516-88a7-049fc02ba9fc/"][0]["datatype"]
+#	del metadata["https://purl.org/coscine/terms/633936b5-3a40-4471-ae7b-28aa3832956b/"][0]["datatype"]
+	print(json.dumps(metadata, indent=4))
+	#r = resource.upload("main.py", "./__main__.py", metadata)
+
+	obj = resource.object("main.py")
+	print(obj)
+	form = obj.metadata()
+	print(form)
 
 ###############################################################################
 
-- 
GitLab