From 21cdcd0ce47b6a61906713a2bcba4d33724fd643 Mon Sep 17 00:00:00 2001 From: Alexander Schlemmer <a.schlemmer@indiscale.com> Date: Tue, 5 Nov 2024 12:02:47 +0100 Subject: [PATCH] TST(converters): test for generating children of ROCrate entities --- unittests/test_rocrate_converter.py | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/unittests/test_rocrate_converter.py b/unittests/test_rocrate_converter.py index 65ea112a..7f9c06fe 100644 --- a/unittests/test_rocrate_converter.py +++ b/unittests/test_rocrate_converter.py @@ -39,7 +39,7 @@ from rocrate.model.entity import Entity from caoscrawler.converters import (ELNFileConverter, ROCrateEntityConverter) from caoscrawler.scanner import load_definition from caoscrawler.stores import GeneralStore -from caoscrawler.structure_elements import ROCrateEntity, File +from caoscrawler.structure_elements import ROCrateEntity, File, TextElement, DictElement UNITTESTDIR = Path(__file__).parent @@ -114,7 +114,33 @@ def test_match_rocrate_entities(eln_entities): type: ROCrateEntity match_properties: "@id": \\./ + datePublished: (?P<datePublished>.*) """), "TestELNConverter", converter_registry) match = ds1.match(eln_entities[0]) assert match is not None + + ds2 = ROCrateEntityConverter(yaml.safe_load(""" +type: ROCrateEntity +match_type: CreativeWork +match_properties: + "@id": ro-crate-metadata.json + dateCreated: (?P<dateCreated>.*) +"""), "TestELNConverter", converter_registry) + + match = ds2.match(eln_entities[0]) + assert match is None + match = ds1.match(eln_entities[1]) + assert match is None + + match = ds2.match(eln_entities[1]) + assert match is not None + assert match["dateCreated"] == "2024-08-21T12:07:45.115990+00:00" + + children = ds2.create_children(GeneralStore(), eln_entities[1]) + assert len(children) == 7 + assert isinstance(children[0], TextElement) + assert children[0].name == "@id" + assert children[0].value == "ro-crate-metadata.json" + assert isinstance(children[5], DictElement) + assert children[5].value == {'@id': 'https://kadi.iam.kit.edu'} -- GitLab