def test_to_graph_should_return_catalog_without_services_as_graph() -> None: """It returns a catalog graph isomorphic to spec.""" catalog = Catalog() catalog.identifier = "http://example.com/catalogs/1" service1 = DataService() service1.identifier = "http://example.com/services/1" service1.title = {"nb": "Datatjeneste 1", "en": "Dataservice 1"} catalog.services.append(service1) service2 = DataService() service2.identifier = "http://example.com/services/2" service2.title = {"nb": "Datatjeneste 2", "en": "Dataservice 2"} catalog.services.append(service2) src = """ @prefix dct: <http://purl.org/dc/terms/> . @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . @prefix dcat: <http://www.w3.org/ns/dcat#> . <http://example.com/catalogs/1> a dcat:Catalog ; dcat:service <http://example.com/services/1>, <http://example.com/services/2> . """ g1 = Graph().parse(data=catalog.to_rdf(include_services=False), format="turtle") g2 = Graph().parse(data=src, format="turtle") _isomorphic = isomorphic(g1, g2) if not _isomorphic: _dump_diff(g1, g2) pass assert _isomorphic
def test_to_graph_should_return_media_type() -> None: """It returns a media type graph isomorphic to spec.""" dataService = DataService() dataService.identifier = "http://example.com/dataservices/1" dataService.media_types.append( "https://www.iana.org/assignments/media-types/application/ld+json" ) src = """ @prefix dct: <http://purl.org/dc/terms/> . @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . @prefix dcat: <http://www.w3.org/ns/dcat#> . <http://example.com/dataservices/1> a dcat:DataService ; dcat:mediaType \ <https://www.iana.org/assignments/media-types/application/ld+json> ; . """ g1 = Graph().parse(data=dataService.to_rdf(), format="turtle") g2 = Graph().parse(data=src, format="turtle") _isomorphic = isomorphic(g1, g2) if not _isomorphic: _dump_diff(g1, g2) pass assert _isomorphic
def test_to_graph_should_return_servesDataset_skolemization( mocker: MockFixture, ) -> None: """It returns a servesDataset graph isomorphic to spec.""" dataService = DataService() dataService.identifier = "http://example.com/dataservices/1" dataset1 = Dataset() dataService.servesdatasets.append(dataset1) src = """ @prefix dct: <http://purl.org/dc/terms/> . @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . @prefix dcat: <http://www.w3.org/ns/dcat#> . <http://example.com/dataservices/1> a dcat:DataService ; dcat:servesDataset <http://wwww.digdir.no/.well-known/skolem/284db4d2-80c2-11eb-82c3-83e80baa2f94> . """ mocker.patch( "skolemizer.Skolemizer.add_skolemization", return_value=skolemization, ) g1 = Graph().parse(data=dataService.to_rdf(), format="turtle") g2 = Graph().parse(data=src, format="turtle") _isomorphic = isomorphic(g1, g2) if not _isomorphic: _dump_diff(g1, g2) pass assert _isomorphic
def test_to_graph_should_return_servesDataset_as_graph() -> None: """It returns a servesDataset graph isomorphic to spec.""" dataService = DataService() dataService.identifier = "http://example.com/dataservices/1" dataset1 = Dataset() dataset1.identifier = "http://example.com/datasets/1" dataService.servesdatasets.append(dataset1) dataset2 = Dataset() dataset2.identifier = "http://example.com/datasets/2" dataService.servesdatasets.append(dataset2) src = """ @prefix dct: <http://purl.org/dc/terms/> . @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . @prefix dcat: <http://www.w3.org/ns/dcat#> . <http://example.com/dataservices/1> a dcat:DataService ; dcat:servesDataset <http://example.com/datasets/1>, <http://example.com/datasets/2> . """ g1 = Graph().parse(data=dataService.to_rdf(), format="turtle") g2 = Graph().parse(data=src, format="turtle") _isomorphic = isomorphic(g1, g2) if not _isomorphic: _dump_diff(g1, g2) pass assert _isomorphic
def test_to_graph_should_return_access_service() -> None: """It returns a access service graph isomorphic to spec.""" distribution = Distribution() distribution.identifier = "http://example.com/distributions/1" service = DataService() service.identifier = "http://example.com/dataservices/1" distribution.access_service = service src = """ @prefix dct: <http://purl.org/dc/terms/> . @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . @prefix dcat: <http://www.w3.org/ns/dcat#> . <http://example.com/distributions/1> a dcat:Distribution ; dcat:accessService <http://example.com/dataservices/1> ; . """ g1 = Graph().parse(data=distribution.to_rdf(), format="turtle") g2 = Graph().parse(data=src, format="turtle") _isomorphic = isomorphic(g1, g2) if not _isomorphic: _dump_diff(g1, g2) pass assert _isomorphic
def test_to_graph_should_return_endpointDescription_as_graph() -> None: """It returns a endpointDescription graph isomorphic to spec.""" dataService = DataService() dataService.identifier = "http://example.com/dataservices/1" dataService.endpointDescription = "http://example.com/endpointdescription/1" src = """ @prefix dct: <http://purl.org/dc/terms/> . @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . @prefix dcat: <http://www.w3.org/ns/dcat#> . <http://example.com/dataservices/1> a dcat:DataService ; dcat:endpointDescription <http://example.com/endpointdescription/1> . """ g1 = Graph().parse(data=dataService.to_rdf(), format="turtle") g2 = Graph().parse(data=src, format="turtle") _isomorphic = isomorphic(g1, g2) if not _isomorphic: _dump_diff(g1, g2) pass assert _isomorphic
def _add_mandatory_props(api: DataService, es_hit: Mapping) -> None: api.title = {"nb": es_hit["title"]} api.identifier = es_hit["id"] api.publisher = URI(os.environ["PUBLISHER"]) if es_hit.get("master") == "NAV API PORTAL": api.landing_page = [os.environ["NAV_API_PORTAL"]]
def _add_mandatory_props(api: DataService, es_hit: Mapping) -> None: api.title = {"nb": es_hit["title"]} api.identifier = es_hit["id"]