From 8cb1f8f44707a8e85ee9a47653fa3f27dee376e3 Mon Sep 17 00:00:00 2001 From: Fabio Sinibaldi Date: Wed, 27 Apr 2022 15:51:29 +0200 Subject: [PATCH] Schema tests --- .../application/cms/tests/TestSchemas.java | 30 ++ .../schemas/MOSI-schema.json | 2 +- use-cases/notebooks/gna/MOSI.ipynb | 321 ++++++++++++++++++ .../cms/usecases/CheckSchemas.java | 23 ++ 4 files changed, 375 insertions(+), 1 deletion(-) create mode 100644 cms-test-commons/src/main/java/org/gcube/application/cms/tests/TestSchemas.java create mode 100644 use-cases/notebooks/gna/MOSI.ipynb create mode 100644 use-cases/src/test/java/org/gcube/application/cms/usecases/CheckSchemas.java diff --git a/cms-test-commons/src/main/java/org/gcube/application/cms/tests/TestSchemas.java b/cms-test-commons/src/main/java/org/gcube/application/cms/tests/TestSchemas.java new file mode 100644 index 0000000..2c8cbe6 --- /dev/null +++ b/cms-test-commons/src/main/java/org/gcube/application/cms/tests/TestSchemas.java @@ -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 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); + } + } + } +} diff --git a/test-data/profiledDocuments/schemas/MOSI-schema.json b/test-data/profiledDocuments/schemas/MOSI-schema.json index b46698c..6e34622 100644 --- a/test-data/profiledDocuments/schemas/MOSI-schema.json +++ b/test-data/profiledDocuments/schemas/MOSI-schema.json @@ -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"}}}, diff --git a/use-cases/notebooks/gna/MOSI.ipynb b/use-cases/notebooks/gna/MOSI.ipynb new file mode 100644 index 0000000..5e95d58 --- /dev/null +++ b/use-cases/notebooks/gna/MOSI.ipynb @@ -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 +} diff --git a/use-cases/src/test/java/org/gcube/application/cms/usecases/CheckSchemas.java b/use-cases/src/test/java/org/gcube/application/cms/usecases/CheckSchemas.java new file mode 100644 index 0000000..06054b6 --- /dev/null +++ b/use-cases/src/test/java/org/gcube/application/cms/usecases/CheckSchemas.java @@ -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); + }); + } + +}