From 7d2bdbcc1f5ee6711b29c50a8fbd89005f3092c3 Mon Sep 17 00:00:00 2001 From: Bryce Mecum Date: Fri, 25 Feb 2022 16:52:39 -0900 Subject: [PATCH] Fix bug in adding checksumAlgorithm triples Closes one of https://github.com/DataONEorg/slinky/issues/64 --- d1lod/d1lod/processors/processor.py | 10 +++++---- d1lod/tests/test_processor.py | 32 +++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+), 4 deletions(-) create mode 100644 d1lod/tests/test_processor.py diff --git a/d1lod/d1lod/processors/processor.py b/d1lod/d1lod/processors/processor.py index c1e3f7b..985237a 100644 --- a/d1lod/d1lod/processors/processor.py +++ b/d1lod/d1lod/processors/processor.py @@ -378,10 +378,12 @@ def process_checksum(self, subject, value, algorithm): else: raise ChecksumAlgorithmNotSupportedException(algorithm) - RDF.Statement( - checksum_bnode, - RDF.Node(RDF.Uri("http://spdx.org/rdf/terms#algorithm")), - RDF.Node(RDF.Uri(checksum_named_individual)), + self.model.append( + RDF.Statement( + checksum_bnode, + RDF.Node(RDF.Uri("http://spdx.org/rdf/terms#algorithm")), + RDF.Node(RDF.Uri(checksum_named_individual)), + ) ) # def lookup_person_in_store(self, last_name, email): diff --git a/d1lod/tests/test_processor.py b/d1lod/tests/test_processor.py new file mode 100644 index 0000000..7541335 --- /dev/null +++ b/d1lod/tests/test_processor.py @@ -0,0 +1,32 @@ +import RDF + +from d1lod.processors.processor import Processor + +from .conftest import load_metadata, load_sysmeta +from d1lod.processors.util import model_has_statement + + +def test_processor_sets_checksum_and_algorithm(client, model): + metadata = load_metadata("eml/eml-attribute-gym.xml") + sysmeta = load_sysmeta("eml-attribute-gym-sysmeta.xml") + + processor = Processor(client, model, sysmeta, metadata, []) + processor.process() + + assert model_has_statement( + processor.model, + RDF.Statement( + None, + RDF.Node(RDF.Uri("http://spdx.org/rdf/terms#algorithm")), + None, + ), + ) + + assert model_has_statement( + processor.model, + RDF.Statement( + None, + RDF.Node(RDF.Uri("http://spdx.org/rdf/terms#checksumValue")), + None, + ), + )