Skip to content

Commit f65ded1

Browse files
committed
Merge branch 'no_libraries' into feature/SWS1-14
2 parents 50a8a45 + 17d8e24 commit f65ded1

6 files changed

Lines changed: 57 additions & 1 deletion

File tree

.github/workflows/unit-tests-srv.yml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,11 +51,16 @@ jobs:
5151
env_vars: OS,PYTHON
5252
name: codecov-umbrella
5353
fail_ci_if_error: true
54+
- name: Set working directory fir SonarCloud
55+
run: mkdir -p $GITHUB_WORKSPACE/.scannerwork && chmod -R 777 $GITHUB_WORKSPACE/.scannerwork && pwd && ls -a
56+
5457
- name: SonarCloud Scan
55-
uses: SonarSource/sonarcloud-github-action@master
58+
uses: SonarSource/sonarqube-scan-action@v4.1.0
5659
env:
5760
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any
5861
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
62+
with:
63+
args: -Dsonar.working.directory=$GITHUB_WORKSPACE/.scannerwork
5964
# - name: Clean Mongo DB
6065
# run: make clean-mongo-db
6166
# - name: Upload coverage to Codecov

ted_sws/notice_packager/resources/templates/mets_xml_dmd_rdf.jinja2

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
<cdm:work rdf:about="&resource;ted/{{ work.identifier }}">
1313
{# <rdf:type rdf:resource="http://publications.europa.eu/ontology/cdm#work"/> #}
1414
<rdf:type rdf:resource="http://publications.europa.eu/ontology/cdm#procurement_public"/>
15+
<cdm:work_id rdf:datatype="http://www.w3.org/2001/XMLSchema#string">{{ work.uri }}</cdm:work_id>
1516
<cdm:work_id_document rdf:datatype="http://www.w3.org/2001/XMLSchema#string">ted:{{ work.identifier }}</cdm:work_id_document>
1617
<cdm:work_id_document rdf:datatype="http://www.w3.org/2001/XMLSchema#string">oj:{{ work.oj_identifier }}</cdm:work_id_document>
1718
<cdm:work_has_resource-type rdf:resource="http://publications.europa.eu/resource/authority/resource-type/PROCUREMENT_NOTICE"/>

tests/test_data/notice_packager/templates/2021_S_004_003545_0.mets.xml.dmd.rdf

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
<cdm:work rdf:about="&resource;ted/2021_S_004_003545">
1313

1414
<rdf:type rdf:resource="http://publications.europa.eu/ontology/cdm#procurement_public"/>
15+
<cdm:work_id rdf:datatype="http://www.w3.org/2001/XMLSchema#string">http://data.europa.eu/a4g/resource/2021/003545_2021</cdm:work_id>
1516
<cdm:work_id_document rdf:datatype="http://www.w3.org/2001/XMLSchema#string">ted:2021_S_004_003545</cdm:work_id_document>
1617
<cdm:work_id_document rdf:datatype="http://www.w3.org/2001/XMLSchema#string">oj:JOS_2021_004_R_003545</cdm:work_id_document>
1718
<cdm:work_has_resource-type rdf:resource="http://publications.europa.eu/resource/authority/resource-type/PROCUREMENT_NOTICE"/>

tests/unit/dags/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,3 +40,4 @@
4040

4141
FULL_BRANCH_TASK_IDS = [START_PROCESSING_NOTICE_TASK_ID, INDEX_NOTICE_XML_CONTENT_TASK_ID,
4242
NORMALISE_NOTICE_METADATA_TASK_ID] + TRANSFORM_BRANCH_TASK_IDS + PACKAGE_BRANCH_TASK_IDS + PUBLISH_BRANCH_TASK_IDS
43+

tests/unit/notice_packager/conftest.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,3 +98,9 @@ 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+
"""Returns the URI predicate for the CDM work identifier."""
106+
return "http://publications.europa.eu/ontology/cdm#work_id"

tests/unit/notice_packager/test_template_generator.py

Lines changed: 42 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,43 @@ 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+
"""Test that generated METS DMD RDF contains a work_id predicate."""
67+
mets_dmd_rdf: str = TemplateGenerator.mets_xml_dmd_rdf_generator(template_sample_metadata)
68+
mets_graph: Graph = Graph().parse(data=mets_dmd_rdf, format="xml")
69+
70+
work_id_predicate_exists: bool = mets_graph.query(
71+
f""" ASK WHERE {{ ?subject <{work_id_predicate}> ?object . }} """).askAnswer
72+
73+
assert work_id_predicate_exists
74+
75+
76+
def test_mets_dmd_rdf_has_work_id_as_string_after_generation(template_sample_metadata: PackagerMetadata,
77+
work_id_predicate: str):
78+
"""Test that work_id in METS DMD RDF is of type xsd:string."""
79+
mets_dmd_rdf: str = TemplateGenerator.mets_xml_dmd_rdf_generator(template_sample_metadata)
80+
mets_graph: Graph = Graph().parse(data=mets_dmd_rdf, format="xml")
81+
string_datatype = XSD.string
82+
83+
work_id_predicate_exists: bool = mets_graph.query(
84+
f""" ASK WHERE {{ ?subject <{work_id_predicate}> ?object . FILTER(datatype(?object) = <{string_datatype}>) }} """).askAnswer
85+
86+
assert work_id_predicate_exists
87+
88+
89+
def test_mets_dmd_rdf_has_correct_work_id_value_after_generation(template_sample_metadata: PackagerMetadata,
90+
work_id_predicate: str):
91+
"""Test that work_id value in METS DMD RDF matches the metadata work URI."""
92+
mets_dmd_rdf: str = TemplateGenerator.mets_xml_dmd_rdf_generator(template_sample_metadata)
93+
mets_graph: Graph = Graph().parse(data=mets_dmd_rdf, format="xml")
94+
95+
assert template_sample_metadata.work.uri
96+
work_id_value_literal = Literal(template_sample_metadata.work.uri, datatype=XSD.string)
97+
98+
work_id_is_same: bool = mets_graph.query(
99+
f""" ASK WHERE {{ ?subject <{work_id_predicate}> {work_id_value_literal.n3()} . }} """).askAnswer
100+
101+
assert work_id_is_same

0 commit comments

Comments
 (0)