From ca959547bebd65385497a26176ef47e0d5005754 Mon Sep 17 00:00:00 2001 From: samwaseda Date: Thu, 23 Jan 2025 06:15:43 +0000 Subject: [PATCH 1/2] Add test --- pyiron_ontology/parser.py | 8 +++++--- tests/unit/test_parser.py | 12 ++++++++++++ 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/pyiron_ontology/parser.py b/pyiron_ontology/parser.py index b100272..66472bc 100644 --- a/pyiron_ontology/parser.py +++ b/pyiron_ontology/parser.py @@ -47,10 +47,12 @@ def get_inputs_and_outputs(node: Node) -> dict: for key, value in node.inputs.items(): if inputs[key] is None: inputs[key] = {} - inputs[key]["value"] = value.value + if value.value is not NOT_DATA: + inputs[key]["value"] = value.value inputs[key]["connection"] = get_source_output(value) for key, value in node.outputs.to_value_dict().items(): - outputs[key]["value"] = value + if value is not NOT_DATA: + outputs[key]["value"] = value return { "inputs": inputs, "outputs": outputs, @@ -129,7 +131,7 @@ def get_triples( graph.add((label, RDF.type, PROV.Entity)) if d.get("uri", None) is not None: graph.add((label, RDF.type, URIRef(d["uri"]))) - if d.get("value", NOT_DATA) is not NOT_DATA: + if "value" in d: graph.add((label, RDF.value, Literal(d["value"]))) if io_ == "inputs": graph.add((label, PNS.inputOf, URIRef(full_label))) diff --git a/tests/unit/test_parser.py b/tests/unit/test_parser.py index 530f381..afc3b4f 100644 --- a/tests/unit/test_parser.py +++ b/tests/unit/test_parser.py @@ -178,6 +178,18 @@ def test_namespace(self): with self.assertRaises(AttributeError): _ = PNS.ahoy + def test_parsing_without_running(self): + wf = Workflow("correct_analysis") + wf.addition = add(a=1.0, b=2.0) + data = get_inputs_and_outputs(wf.addition) + self.assertFalse("value" in data["outputs"]) + graph = get_triples(data) + self.assertEqual(len(list(graph.triples((None, RDF.value, None)))), 2) + wf.run() + data = get_inputs_and_outputs(wf.addition) + graph = get_triples(data) + self.assertEqual(len(list(graph.triples((None, RDF.value, None)))), 3) + if __name__ == "__main__": unittest.main() From 24554dd8ed0fefe262ee93f183093c63dafca80b Mon Sep 17 00:00:00 2001 From: samwaseda Date: Thu, 23 Jan 2025 06:16:39 +0000 Subject: [PATCH 2/2] add error messages --- tests/unit/test_parser.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/tests/unit/test_parser.py b/tests/unit/test_parser.py index afc3b4f..d6bb36d 100644 --- a/tests/unit/test_parser.py +++ b/tests/unit/test_parser.py @@ -184,11 +184,19 @@ def test_parsing_without_running(self): data = get_inputs_and_outputs(wf.addition) self.assertFalse("value" in data["outputs"]) graph = get_triples(data) - self.assertEqual(len(list(graph.triples((None, RDF.value, None)))), 2) + self.assertEqual( + len(list(graph.triples((None, RDF.value, None)))), + 2, + msg="There should be only values for a and b, but not for the output", + ) wf.run() data = get_inputs_and_outputs(wf.addition) graph = get_triples(data) - self.assertEqual(len(list(graph.triples((None, RDF.value, None)))), 3) + self.assertEqual( + len(list(graph.triples((None, RDF.value, None)))), + 3, + msg="There should be values for a, b and the output", + ) if __name__ == "__main__":