mirror of
https://github.com/dathere/ckan_geoconnex_bulk_runner.git
synced 2026-07-05 15:12:20 +00:00
feat: enhanced cargo workspace, NM usage, Dockerfile
This commit is contained in:
parent
71b08a53f0
commit
3a79fb2b0a
18 changed files with 362 additions and 2478 deletions
97
geoconnex_utils/tests/validate_jsonld.rs
Normal file
97
geoconnex_utils/tests/validate_jsonld.rs
Normal file
|
|
@ -0,0 +1,97 @@
|
|||
use anyhow::{bail, Result};
|
||||
#[cfg(feature = "local")]
|
||||
use geoconnex_utils::schema::get_dataset_schema;
|
||||
use geoconnex_utils::schema::get_location_schema;
|
||||
use serde_json::json;
|
||||
#[cfg(feature = "local")]
|
||||
use std::{
|
||||
fs::File,
|
||||
io::{BufRead, BufReader},
|
||||
};
|
||||
|
||||
#[test]
|
||||
#[cfg(feature = "local")]
|
||||
fn validate_sciencebase_dump() -> Result<()> {
|
||||
let file_path = "./tests/sciencebase_jsonld_dump_202605-06.jsonl";
|
||||
if !std::fs::exists(file_path)? {
|
||||
bail!("File path {file_path} does not exist.")
|
||||
}
|
||||
|
||||
let dataset_json_schema = get_dataset_schema();
|
||||
|
||||
// Read JSONL file line-by-line
|
||||
let file = File::open(file_path)?;
|
||||
let reader = BufReader::new(file);
|
||||
|
||||
let mut line_number = 0;
|
||||
for line in reader.lines() {
|
||||
let jsonld: serde_json::Value = serde_json::from_str(line?.as_str())?;
|
||||
if let Err(e) = jsonschema::validate(&dataset_json_schema, &jsonld) {
|
||||
println!("Error during validation on line {line_number}:");
|
||||
println!("JSON-LD:");
|
||||
println!("{jsonld:#?}");
|
||||
bail!("{e}");
|
||||
} else {
|
||||
println!("Successfully validated line {line_number}.");
|
||||
line_number = line_number + 1;
|
||||
}
|
||||
}
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn validate_usgs_location_jsonld() -> Result<()> {
|
||||
let usgs_location_jsonld = json!({
|
||||
"@context": {
|
||||
"@vocab": "https://schema.org/",
|
||||
"gsp": "http://www.opengis.net/ont/geosparql#",
|
||||
"hyf": "https://www.opengis.net/def/schema/hy_features/hyf/",
|
||||
"locType": "https://api.waterdata.usgs.gov/ogcapi/v0/collections/site-types/items/"
|
||||
},
|
||||
"@type": [
|
||||
"Place",
|
||||
"hyf:HY_HydrometricFeature",
|
||||
"hyf:HY_HydroLocation",
|
||||
"locType:ST-CA"
|
||||
],
|
||||
"@id": "https://geoconnex.us/usgs/monitoring-location/USGS-253937080285200",
|
||||
"name": "BLACKCREEKCANALWESTOFSOUTHMIAMI FLA",
|
||||
"identifier": {
|
||||
"@type": "PropertyValue",
|
||||
"propertyID": "USGS site identifier",
|
||||
"value": "253937080285200"
|
||||
},
|
||||
"url": "https://api.waterdata.usgs.gov/ogcapi/v0/collections/monitoring-locations/items/USGS-253937080285200",
|
||||
"provider": {
|
||||
"@type": "GovernmentOrganization",
|
||||
"name": "U.S. Geological Survey"
|
||||
},
|
||||
"geo": {
|
||||
"@type": "GeoCoordinates",
|
||||
"latitude": 25.6606597832648,
|
||||
"longitude": -80.4808896071386
|
||||
},
|
||||
"gsp:hasGeometry": {
|
||||
"@type": "http://www.opengis.net/ont/sf#Point",
|
||||
"gsp:asWKT": {
|
||||
"@type": "gsp:wktLiteral",
|
||||
"@value": "POINT (-80.4808896071386 25.6606597832648)"
|
||||
},
|
||||
"gsp:crs": {
|
||||
"@id": "http://www.opengis.net/def/crs/OGC/1.3/CRS84"
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
let location_json_schema = get_location_schema();
|
||||
|
||||
if let Err(e) = jsonschema::validate(&location_json_schema, &usgs_location_jsonld) {
|
||||
println!("Error during validation:");
|
||||
bail!("{e}");
|
||||
} else {
|
||||
println!("Successfully validated.");
|
||||
}
|
||||
|
||||
Ok(())
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue