Schema tests

This commit is contained in:
Fabio Sinibaldi 2022-04-27 15:51:29 +02:00
parent 8c0012e581
commit 8cb1f8f447
4 changed files with 375 additions and 1 deletions

View File

@ -0,0 +1,30 @@
package org.gcube.application.cms.tests;
import org.bson.Document;
import org.gcube.application.cms.serialization.Serialization;
import org.gcube.application.geoportal.common.model.useCaseDescriptor.UseCaseDescriptor;
import org.gcube.application.geoportal.common.utils.Files;
import java.io.File;
import java.io.IOException;
import java.nio.charset.Charset;
import java.util.HashMap;
public class TestSchemas {
public static File BASE_FOLDER =new File("../test-data/profiledDocuments/schemas");
public static final HashMap<String, Document> schemas =new HashMap<>();
static{
for(File f:BASE_FOLDER.listFiles()){
try {
schemas.put(f.getName(), Document.parse(Files.readFileAsString(f.getAbsolutePath(), Charset.defaultCharset())));
} catch (IOException e) {
throw new RuntimeException("Unable to read "+f.getAbsolutePath(),e);
}
}
}
}

View File

@ -133,7 +133,7 @@
"VR" : {"_label": "VALUTAZIONE/INTERPRETAZIONE","_min": 1,"_children": {
"VRP" : {"_label": "VALUTAZIONE POTENZIALE ARCHEOLOGICO","_min": 1,"_children": {
"VRPI" : {"_label": "Interpretazione","_min": 1},
"VRPA" : {"_label": "Affidabilita'","_min": 1,"_type": "DIRECT-STRING-CL", "_values": ["scarsa","discreta","buona","ottima"]}
"VRPA" : {"_label": "Affidabilita'","_min": 1,"_type": "DIRECT-STRING-CL", "_values": ["scarsa","discreta","buona","ottima"]},
"VRPV" : {"_label": "Valutazione nell'ambito del contesto"},
"VRPS" : {"_label": "Potenziale - sintesi","_min": 1,"_type": "DIRECT-STRING-CL", "_values": ["potenziale alto","potenziale medio","potenziale basso","potenziale nullo","potenziale non valutabile"]},
"VRPN" : {"_label": "Note"}}},

View File

@ -0,0 +1,321 @@
{
"cells": [
{
"cell_type": "markdown",
"id": "ad36ae4c-6359-41f6-b9c5-971c96a678f0",
"metadata": {},
"source": [
"# MOSI UseCase\n",
"\n",
"This notebooks :\n",
"\n",
"- Creates UCD\n",
"- Creates UCD Schema \n",
"- Insert MOSI Record\n",
"- Publishes"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "ca65023e-ae07-45de-ba75-4d39d66df53b",
"metadata": {
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Requirement already satisfied: rich[jupyter] in /opt/conda/lib/python3.9/site-packages (12.2.0)\n",
"Requirement already satisfied: pygments<3.0.0,>=2.6.0 in /opt/conda/lib/python3.9/site-packages (from rich[jupyter]) (2.11.2)\n",
"Requirement already satisfied: commonmark<0.10.0,>=0.9.0 in /opt/conda/lib/python3.9/site-packages (from rich[jupyter]) (0.9.1)\n",
"Requirement already satisfied: ipywidgets<8.0.0,>=7.5.1 in /opt/conda/lib/python3.9/site-packages (from rich[jupyter]) (7.7.0)\n",
"Requirement already satisfied: widgetsnbextension~=3.6.0 in /opt/conda/lib/python3.9/site-packages (from ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (3.6.0)\n",
"Requirement already satisfied: ipython-genutils~=0.2.0 in /opt/conda/lib/python3.9/site-packages (from ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.2.0)\n",
"Requirement already satisfied: ipykernel>=4.5.1 in /opt/conda/lib/python3.9/site-packages (from ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (6.11.0)\n",
"Requirement already satisfied: jupyterlab-widgets>=1.0.0 in /opt/conda/lib/python3.9/site-packages (from ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (1.1.0)\n",
"Requirement already satisfied: ipython>=4.0.0 in /opt/conda/lib/python3.9/site-packages (from ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (8.2.0)\n",
"Requirement already satisfied: nbformat>=4.2.0 in /opt/conda/lib/python3.9/site-packages (from ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (5.2.0)\n",
"Requirement already satisfied: traitlets>=4.3.1 in /opt/conda/lib/python3.9/site-packages (from ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (5.1.1)\n",
"Requirement already satisfied: matplotlib-inline>=0.1 in /opt/conda/lib/python3.9/site-packages (from ipykernel>=4.5.1->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.1.3)\n",
"Requirement already satisfied: nest-asyncio in /opt/conda/lib/python3.9/site-packages (from ipykernel>=4.5.1->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (1.5.5)\n",
"Requirement already satisfied: jupyter-client>=6.1.12 in /opt/conda/lib/python3.9/site-packages (from ipykernel>=4.5.1->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (7.2.1)\n",
"Requirement already satisfied: tornado>=6.1 in /opt/conda/lib/python3.9/site-packages (from ipykernel>=4.5.1->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (6.1)\n",
"Requirement already satisfied: psutil in /opt/conda/lib/python3.9/site-packages (from ipykernel>=4.5.1->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (5.9.0)\n",
"Requirement already satisfied: setuptools>=60 in /opt/conda/lib/python3.9/site-packages (from ipykernel>=4.5.1->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (61.3.1)\n",
"Requirement already satisfied: debugpy>=1.0 in /opt/conda/lib/python3.9/site-packages (from ipykernel>=4.5.1->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (1.5.1)\n",
"Requirement already satisfied: pexpect>4.3 in /opt/conda/lib/python3.9/site-packages (from ipython>=4.0.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (4.8.0)\n",
"Requirement already satisfied: pickleshare in /opt/conda/lib/python3.9/site-packages (from ipython>=4.0.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.7.5)\n",
"Requirement already satisfied: decorator in /opt/conda/lib/python3.9/site-packages (from ipython>=4.0.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (5.1.1)\n",
"Requirement already satisfied: backcall in /opt/conda/lib/python3.9/site-packages (from ipython>=4.0.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.2.0)\n",
"Requirement already satisfied: prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0 in /opt/conda/lib/python3.9/site-packages (from ipython>=4.0.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (3.0.27)\n",
"Requirement already satisfied: stack-data in /opt/conda/lib/python3.9/site-packages (from ipython>=4.0.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.2.0)\n",
"Requirement already satisfied: jedi>=0.16 in /opt/conda/lib/python3.9/site-packages (from ipython>=4.0.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.18.1)\n",
"Requirement already satisfied: jsonschema!=2.5.0,>=2.4 in /opt/conda/lib/python3.9/site-packages (from nbformat>=4.2.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (4.4.0)\n",
"Requirement already satisfied: jupyter-core in /opt/conda/lib/python3.9/site-packages (from nbformat>=4.2.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (4.9.2)\n",
"Requirement already satisfied: notebook>=4.4.1 in /opt/conda/lib/python3.9/site-packages (from widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (6.4.10)\n",
"Requirement already satisfied: parso<0.9.0,>=0.8.0 in /opt/conda/lib/python3.9/site-packages (from jedi>=0.16->ipython>=4.0.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.8.3)\n",
"Requirement already satisfied: pyrsistent!=0.17.0,!=0.17.1,!=0.17.2,>=0.14.0 in /opt/conda/lib/python3.9/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.18.1)\n",
"Requirement already satisfied: attrs>=17.4.0 in /opt/conda/lib/python3.9/site-packages (from jsonschema!=2.5.0,>=2.4->nbformat>=4.2.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (21.4.0)\n",
"Requirement already satisfied: pyzmq>=22.3 in /opt/conda/lib/python3.9/site-packages (from jupyter-client>=6.1.12->ipykernel>=4.5.1->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (22.3.0)\n",
"Requirement already satisfied: python-dateutil>=2.8.2 in /opt/conda/lib/python3.9/site-packages (from jupyter-client>=6.1.12->ipykernel>=4.5.1->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (2.8.2)\n",
"Requirement already satisfied: entrypoints in /opt/conda/lib/python3.9/site-packages (from jupyter-client>=6.1.12->ipykernel>=4.5.1->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.4)\n",
"Requirement already satisfied: Send2Trash>=1.8.0 in /opt/conda/lib/python3.9/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (1.8.0)\n",
"Requirement already satisfied: argon2-cffi in /opt/conda/lib/python3.9/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (21.3.0)\n",
"Requirement already satisfied: jinja2 in /opt/conda/lib/python3.9/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (3.1.1)\n",
"Requirement already satisfied: nbconvert>=5 in /opt/conda/lib/python3.9/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (6.4.5)\n",
"Requirement already satisfied: terminado>=0.8.3 in /opt/conda/lib/python3.9/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.13.3)\n",
"Requirement already satisfied: prometheus-client in /opt/conda/lib/python3.9/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.13.1)\n",
"Requirement already satisfied: ptyprocess>=0.5 in /opt/conda/lib/python3.9/site-packages (from pexpect>4.3->ipython>=4.0.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.7.0)\n",
"Requirement already satisfied: wcwidth in /opt/conda/lib/python3.9/site-packages (from prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0->ipython>=4.0.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.2.5)\n",
"Requirement already satisfied: pure-eval in /opt/conda/lib/python3.9/site-packages (from stack-data->ipython>=4.0.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.2.2)\n",
"Requirement already satisfied: asttokens in /opt/conda/lib/python3.9/site-packages (from stack-data->ipython>=4.0.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (2.0.5)\n",
"Requirement already satisfied: executing in /opt/conda/lib/python3.9/site-packages (from stack-data->ipython>=4.0.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.8.3)\n",
"Requirement already satisfied: testpath in /opt/conda/lib/python3.9/site-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.6.0)\n",
"Requirement already satisfied: MarkupSafe>=2.0 in /opt/conda/lib/python3.9/site-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (2.1.1)\n",
"Requirement already satisfied: mistune<2,>=0.8.1 in /opt/conda/lib/python3.9/site-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.8.4)\n",
"Requirement already satisfied: defusedxml in /opt/conda/lib/python3.9/site-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.7.1)\n",
"Requirement already satisfied: nbclient<0.6.0,>=0.5.0 in /opt/conda/lib/python3.9/site-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.5.13)\n",
"Requirement already satisfied: pandocfilters>=1.4.1 in /opt/conda/lib/python3.9/site-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (1.5.0)\n",
"Requirement already satisfied: beautifulsoup4 in /opt/conda/lib/python3.9/site-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (4.10.0)\n",
"Requirement already satisfied: jupyterlab-pygments in /opt/conda/lib/python3.9/site-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.1.2)\n",
"Requirement already satisfied: bleach in /opt/conda/lib/python3.9/site-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (4.1.0)\n",
"Requirement already satisfied: six>=1.5 in /opt/conda/lib/python3.9/site-packages (from python-dateutil>=2.8.2->jupyter-client>=6.1.12->ipykernel>=4.5.1->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (1.16.0)\n",
"Requirement already satisfied: argon2-cffi-bindings in /opt/conda/lib/python3.9/site-packages (from argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (21.2.0)\n",
"Requirement already satisfied: cffi>=1.0.1 in /opt/conda/lib/python3.9/site-packages (from argon2-cffi-bindings->argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (1.15.0)\n",
"Requirement already satisfied: soupsieve>1.2 in /opt/conda/lib/python3.9/site-packages (from beautifulsoup4->nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (2.3.1)\n",
"Requirement already satisfied: packaging in /opt/conda/lib/python3.9/site-packages (from bleach->nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (21.3)\n",
"Requirement already satisfied: webencodings in /opt/conda/lib/python3.9/site-packages (from bleach->nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (0.5.1)\n",
"Requirement already satisfied: pycparser in /opt/conda/lib/python3.9/site-packages (from cffi>=1.0.1->argon2-cffi-bindings->argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (2.21)\n",
"Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /opt/conda/lib/python3.9/site-packages (from packaging->bleach->nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<8.0.0,>=7.5.1->rich[jupyter]) (3.0.7)\n"
]
}
],
"source": [
"import requests\n",
"import json\n",
"\n",
"# These parameters should be discovered / initialized by common gcube libraries. \n",
"gcube_token = \"3aa85bbf-d5f3-4df4-ad03-4f8f788eba3d-98187548\"\n",
"service_base_endpoint =\"https://geoportal.dev.int.d4science.net/geoportal-service/srv\"\n",
"\n",
"# Actual customizable parameters\n",
"ucid = \"GNA-MOSI\"\n",
"gpkgFile = \"templateItalia.gpkg\"\n",
"\n",
"\n",
"#NB The following should not be changed \n",
"projects_endpoint = service_base_endpoint + \"/projects/\"+ucid\n",
"ucd_endpoint = service_base_endpoint + \"/ucd/\"\n",
"plugins_endpoint=service_base_endpoint + \"/plugins/\"\n",
"\n",
"\n",
"## Import Rich text support for pretty json \n",
"!pip install rich[jupyter]\n",
"import rich\n",
"from rich import print_json\n",
"\n",
"## Define utility function for HTTP requests logging\n",
"def send(dest,data=None,method=\"GET\",params={}):\n",
" print(\"GOING TO SEND \"+method+\" REQUEST TO \"+dest)\n",
" headers={\n",
" 'Content-type':'application/json', \n",
" 'Accept':'*/*',\n",
" 'gcube-token':gcube_token\n",
" }\n",
" if data is not None : print(\"Data is \"+str(data))\n",
" if method == \"GET\" : response = requests.get(url=dest,params=params,headers=headers)\n",
" if method == \"PUT\" : response = requests.put(url=dest,data=data,params=params,headers=headers)\n",
" if method == \"POST\" : response = requests.post(url=dest,data=data,params=params,headers=headers)\n",
" if method == \"DELETE\" : response = requests.delete(url=dest,data=data,params=params,headers=headers)\n",
" print(\"RESPONSE STATUS \"+str(response.status_code)) \n",
" if response.status_code<200 or response.status_code>=300 : \n",
" print(\"CAUSE \"+str(response.reason))\n",
" print(response.text)\n",
" return json.loads(response.text)\n",
"\n",
"#print(send(method=\"GET\",dest=\"http://geoportal.dev.int.d4science.net/geoportal-service/srv/mongo-concessioni/\"))"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "047cf782-73d4-4d8c-9275-69eba2573e67",
"metadata": {},
"outputs": [],
"source": [
"# GPKG support\n",
"import fiona\n"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "a3fae252-963e-4a20-9968-e906d3709681",
"metadata": {},
"outputs": [],
"source": [
"# Init parameters\n",
"UCD = {\n",
" \"_id\" : ucid,\n",
" \"_version\" : \"1.0.0\",\n",
" \"_name\" : \"GNA : MOSI\",\n",
"\n",
" \"_description\" : \"Modulistica siti\",\n",
"\n",
"\n",
"\n",
"\n",
"\n",
" \"_handlers\" : [\n",
" ,\n",
" \n",
" ]\n",
"}"
]
},
{
"cell_type": "markdown",
"id": "c43579c9-0c2c-4e30-a1c6-0565f27f9a55",
"metadata": {},
"source": [
"## UCD"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "7c0a9d27-86d3-4a9c-a51a-c47a80f2cadc",
"metadata": {},
"outputs": [],
"source": [
"schema={\n",
" \"CD\" : {\"_min\":1, \"label\" : \"Identificazione\",\"_children\" :[\n",
" {\"TSK\" : {\"_min\":1,\"_type\" : \"STRING-CONSTANT\", \"value\":{\"MOSI\"},\"label\":\"Tipo modulo\"}},\n",
" {\"CMD\" : {\"_min\":1,\"label\":\"Codice modulo\"}}, # ?? Auto generate\n",
" {\"ESC\" : {\"_min\":1,\"label\":\"Ente schedatore\"}}, # ?? Auto generate\n",
" {\"ECP\" : {\"_min\":1,\"label\":\"Ente competente per tutela\"}}, # ?? Auto generate\n",
" {\"CBC\" : {\"label\":\"Identificativo scheda bene culturale\"}},\n",
" {\"ACC\" : {\"_max\":-1,\"label\":\"Altro codice\", \"_children\"}}\n",
" \n",
" ]\n",
" }\n",
"}\n",
"#NB Cannot set schema from gpkg.MOSI if we want it structured\n",
"#with fiona.open(gpkgFile, layer='MOSI_multipolygon') as layer:\n",
"# feature = layer[0]\n",
" #feature is GeoJSON\n",
"\n",
"\n",
"\n",
"\n",
"# SET GEOMETR \n",
"schema.update(\"multipolygonGeometries\":{\"_max\":-1})\n",
"schema.update(\"points\":{\"_max\":-1})\n",
"schema.update(\"multipolygonGeometries\":{\"_max\":-1})\n",
"\n",
"\n",
"\n",
"\n",
"UCD.update({\"_schema\" :schema})"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "44280c2e-e513-4aec-825a-b4f9504ad35b",
"metadata": {},
"outputs": [],
"source": [
"#TODO DEFINE ROLES\n",
"UCD.update({\"_dataAccessPolicies\" : [\n",
" {\"_policy\" : {\"_read\" : \"own\", \"_write\" : \"own\"}, \"_roles\":[]},\n",
" ]})"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "9e3afe4a-a301-4eea-acd3-95cb03dd26b1",
"metadata": {},
"outputs": [],
"source": [
"# UPDATE Lifecycle Settings\n",
"UCD[\"_handlers\"].append({\n",
" \"_id\" : \"DEFAULT-SINGLE-STEP\",\n",
" \"_type\" : \"LifecycleManagement\",\n",
" \"_configuration\" : {\n",
" \"step_access\" : [\n",
" {\"STEP\" : \"PUBLISH\", \"roles\" :[]}\n",
" ]\n",
" }\n",
" })"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "c6ce3205-38e7-4531-9a46-bea2d48a9321",
"metadata": {},
"outputs": [
{
"ename": "SyntaxError",
"evalue": "closing parenthesis '}' does not match opening parenthesis '(' on line 2 (3773975152.py, line 17)",
"output_type": "error",
"traceback": [
"\u001b[0;36m Input \u001b[0;32mIn [6]\u001b[0;36m\u001b[0m\n\u001b[0;31m })\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m closing parenthesis '}' does not match opening parenthesis '(' on line 2\n"
]
}
],
"source": [
"# UPDATE Lifecycle Settings\n",
"UCD[\"_handlers\"].append({\n",
" \"_id\" : \"SDI-Indexer-Plugin\",\n",
" \"_type\" : \"Indexer\",\n",
" \"_configuration\" : {\n",
"# TODO use \n",
"# \"bboxEvaluation\" : [\"$..posizionamentoScavo.._bbox\"],\n",
" \"explicitFieldMapping\" : [\n",
"#TODO READ FROM MOSI LAYER \n",
" ],\n",
" \"additionalLayers\" : [\n",
"# TODO CONFIGURE Additional\n",
" {\"source\" : {\"url\" : \"...\"},\"toSetTitle\":\"\"}\n",
" ]\n",
" }\n",
" }\n",
" })"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "76b0a6a2-c418-450c-bf79-ff82f3f2df6b",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.10"
}
},
"nbformat": 4,
"nbformat_minor": 5
}

View File

@ -0,0 +1,23 @@
package org.gcube.application.cms.usecases;
import lombok.extern.slf4j.Slf4j;
import org.gcube.application.cms.tests.TestProfiles;
import org.gcube.application.cms.tests.TestSchemas;
import org.junit.Test;
import static junit.framework.TestCase.assertNotNull;
import static junit.framework.TestCase.assertTrue;
@Slf4j
public class CheckSchemas {
@Test
public void check(){
TestSchemas.schemas.forEach((s, document) -> {
log.info("Found {} : {}",s,document);
assertNotNull(document);
assertTrue(document.size()>0);
});
}
}