Skip to content

Commit ebc376a

Browse files
committed
add failing tests for notice linkage in template
1 parent 3b5d081 commit ebc376a

2 files changed

Lines changed: 44 additions & 0 deletions

File tree

tests/unit/notice_packager/conftest.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,3 +98,8 @@ def invalid_rdf_files_path():
9898
@pytest.fixture
9999
def notice_id():
100100
return "196390_2018"
101+
102+
103+
@pytest.fixture
104+
def work_id_predicate():
105+
return "http://publications.europa.eu/ontology/cdm#work_id"

tests/unit/notice_packager/test_template_generator.py

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,10 @@
99
import re
1010

1111
import pytest
12+
from rdflib import Graph, Literal, XSD
1213

1314
from ted_sws.notice_packager.adapters.template_generator import TemplateGenerator
15+
from ted_sws.notice_packager.model.metadata import PackagerMetadata
1416
from tests import TEST_DATA_PATH
1517

1618

@@ -57,3 +59,40 @@ def test_mets2action_mets_xml_generator_with_wrong_action(template_sample_metada
5759
template_sample_metadata.mets.type = "wrong_action"
5860
with pytest.raises(ValueError):
5961
TemplateGenerator.mets2action_mets_xml_generator(template_sample_metadata)
62+
63+
64+
def test_mets_dmd_rdf_has_work_id_after_generation(template_sample_metadata: PackagerMetadata,
65+
work_id_predicate: str):
66+
mets_dmd_rdf: str = TemplateGenerator.mets_xml_dmd_rdf_generator(template_sample_metadata)
67+
mets_graph: Graph = Graph().parse(data=mets_dmd_rdf, format="xml")
68+
69+
work_id_predicate_exists: bool = mets_graph.query(
70+
f""" ASK WHERE {{ ?subject <{work_id_predicate}> ?object . }} """).askAnswer
71+
72+
assert work_id_predicate_exists
73+
74+
def test_mets_dmd_rdf_has_work_id_as_string_after_generation(template_sample_metadata: PackagerMetadata,
75+
work_id_predicate: str):
76+
mets_dmd_rdf: str = TemplateGenerator.mets_xml_dmd_rdf_generator(template_sample_metadata)
77+
mets_graph: Graph = Graph().parse(data=mets_dmd_rdf, format="xml")
78+
string_datatype = XSD.string
79+
80+
work_id_predicate_exists: bool = mets_graph.query(
81+
f""" ASK WHERE {{ ?subject <{work_id_predicate}> ?object . FILTER(datatype(?object) = <{string_datatype}>) }} """).askAnswer
82+
83+
assert work_id_predicate_exists
84+
85+
def test_mets_dmd_rdf_has_correct_work_id_value_after_generation(template_sample_metadata: PackagerMetadata,
86+
work_id_predicate: str):
87+
mets_dmd_rdf: str = TemplateGenerator.mets_xml_dmd_rdf_generator(template_sample_metadata)
88+
mets_graph: Graph = Graph().parse(data=mets_dmd_rdf, format="xml")
89+
90+
assert template_sample_metadata.work.uri
91+
work_id_value_literal = Literal(template_sample_metadata.work.uri, datatype=XSD.string)
92+
93+
work_id_is_same: bool = mets_graph.query(
94+
f""" ASK WHERE {{ ?subject <{work_id_predicate}> {work_id_value_literal.n3()} . }} """).askAnswer
95+
96+
assert work_id_is_same
97+
98+

0 commit comments

Comments
 (0)