From 3b25330707b29526854cb457f6b713ee19869cb3 Mon Sep 17 00:00:00 2001 From: david Date: Wed, 9 Oct 2024 10:21:11 +1000 Subject: [PATCH] Fixes #271 --- prez/app.py | 6 +++++- test_data/catprez.ttl | 8 ++++---- tests/conftest.py | 14 ++++++++++++-- tests/test_endpoints_catprez.py | 11 +++++++++++ 4 files changed, 32 insertions(+), 7 deletions(-) diff --git a/prez/app.py b/prez/app.py index 46fca03..db8d4b2 100755 --- a/prez/app.py +++ b/prez/app.py @@ -185,7 +185,11 @@ def assemble_app( app.include_router(sparql_router) if _settings.configuration_mode: app.include_router(config_router) - app.mount("/static", StaticFiles(directory=Path(__file__).parent / "static"), name="static") + app.mount( + "/static", + StaticFiles(directory=Path(__file__).parent / "static"), + name="static", + ) if _settings.enable_ogc_features: app.mount( "/catalogs/{catalogId}/collections/{recordsCollectionId}/features", diff --git a/test_data/catprez.ttl b/test_data/catprez.ttl index ab8584b..322ce02 100644 --- a/test_data/catprez.ttl +++ b/test_data/catprez.ttl @@ -12,11 +12,11 @@ ex:CatalogOne a dcat:Catalog ; ex:DCATDataset a dcat:Dataset ; rdfs:label "DCAT Resource" ; - dcterms:hasPart ex:RDFResource ; + dcterms:hasPart ex:DCATResource ; ex:property "DCAT Resource property" . -ex:RDFResource a rdf:Resource ; +ex:DCATResource a dcat:Resource ; rdfs:label "RDF Resource" ; ex:property "RDF resource property" ; . @@ -29,11 +29,11 @@ ex:CatalogTwo a dcat:Catalog ; ex:DCATDatasetTwo a dcat:Dataset ; rdfs:label "rightful" ; - dcterms:hasPart ex:RDFResourceTwo ; + dcterms:hasPart ex:DCATResourceTwo ; ex:property "exposure" . -ex:RDFResourceTwo a rdf:Resource ; +ex:DCATResourceTwo a dcat:Resource ; rdfs:label "salty" ; ex:property "proficient" ; . \ No newline at end of file diff --git a/tests/conftest.py b/tests/conftest.py index 8ea99ef..d611075 100755 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -108,8 +108,18 @@ def a_catprez_catalog_link(client): @pytest.fixture() -def a_resource_link(client, a_catprez_catalog_link): - r = client.get(a_catprez_catalog_link) +def a_dataset_link(client, a_catprez_catalog_link): + r = client.get(f"{a_catprez_catalog_link}/collections") + g = Graph().parse(data=r.text) + links = g.objects(subject=None, predicate=URIRef(f"https://prez.dev/link")) + for link in links: + if link != a_catprez_catalog_link: + return link + + +@pytest.fixture() +def a_resource_link(client, a_dataset_link): + r = client.get(f"{a_dataset_link}/items") g = Graph().parse(data=r.text) links = g.objects(subject=None, predicate=URIRef(f"https://prez.dev/link")) for link in links: diff --git a/tests/test_endpoints_catprez.py b/tests/test_endpoints_catprez.py index 79c06d9..0937d34 100755 --- a/tests/test_endpoints_catprez.py +++ b/tests/test_endpoints_catprez.py @@ -39,3 +39,14 @@ def test_lower_level_listing_anot(client, a_catprez_catalog_link): DCAT.Dataset, ) assert next(response_graph.triples(expected_response)) + + +def test_dcat_record(client, a_resource_link): + r = client.get(f"{a_resource_link}?_mediatype=text/turtle") + response_graph = Graph().parse(data=r.text) + expected_response = ( + URIRef("https://example.com/DCATResource"), + RDF.type, + DCAT.Resource, + ) + assert next(response_graph.triples(expected_response))