Skip to content
Merged
Show file tree
Hide file tree
Changes from 9 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
.pytest_cache
./data
/data
dist
venv
output
Expand Down
2 changes: 2 additions & 0 deletions pytest.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
[pytest]
addopts = --ignore=src/opengeodeweb_back/
32 changes: 16 additions & 16 deletions requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,22 +10,22 @@ attrs==24.2.0
# via
# jsonschema
# referencing
blinker==1.8.2
blinker==1.9.0
# via flask
click==8.1.7
# via flask
flask[async]==3.0.3
flask[async]==3.1.0
# via
# -r requirements.in
# flask-cors
flask-cors==5.0.0
# via -r requirements.in
geode-background==8.7.0
geode-background==8.7.5
# via
# geode-explicit
# geode-implicit
# geode-simplex
geode-common==33.0.9
geode-common==33.1.3
# via
# -r requirements.in
# geode-background
Expand All @@ -35,26 +35,26 @@ geode-common==33.0.9
# geode-numerics
# geode-simplex
# geode-viewables
geode-conversion==6.0.14
geode-conversion==6.0.18
# via
# geode-explicit
# geode-implicit
geode-explicit==6.1.14
geode-explicit==6.1.17
# via
# -r requirements.in
# geode-implicit
geode-implicit==3.3.2
geode-implicit==3.3.5
# via -r requirements.in
geode-numerics==5.1.8
geode-numerics==5.2.0
# via
# -r requirements.in
# geode-implicit
# geode-simplex
geode-simplex==8.2.15
geode-simplex==8.2.18
# via
# -r requirements.in
# geode-implicit
geode-viewables==3.0.6
geode-viewables==3.0.8
# via -r requirements.in
itsdangerous==2.2.0
# via flask
Expand All @@ -68,7 +68,7 @@ markupsafe==3.0.2
# via
# jinja2
# werkzeug
opengeode-core==15.6.3
opengeode-core==15.6.7
# via
# -r requirements.in
# geode-background
Expand All @@ -83,23 +83,23 @@ opengeode-core==15.6.3
# opengeode-geosciencesio
# opengeode-inspector
# opengeode-io
opengeode-geosciences==8.1.1
opengeode-geosciences==8.2.0
# via
# -r requirements.in
# geode-implicit
# geode-viewables
# opengeode-geosciencesio
opengeode-geosciencesio==5.2.3
opengeode-geosciencesio==5.3.2
# via
# -r requirements.in
# geode-implicit
opengeode-inspector==6.1.12
opengeode-inspector==6.1.15
# via
# -r requirements.in
# geode-explicit
# geode-implicit
# geode-simplex
opengeode-io==7.0.5
opengeode-io==7.0.7
# via
# -r requirements.in
# geode-implicit
Expand All @@ -115,7 +115,7 @@ rpds-py==0.21.0
# referencing
typing-extensions==4.12.2
# via asgiref
werkzeug==3.1.2
werkzeug==3.1.3
# via
# -r requirements.in
# flask
5 changes: 5 additions & 0 deletions src/opengeodeweb_back/geode_objects.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,15 @@
# Standard library imports

# Third party imports
import opengeode as og
import opengeode_io as og_io
import opengeode_inspector as og_inspector
import opengeode_geosciences as og_gs
import opengeode_geosciencesio as og_gs_io
import geode_viewables as g_v

# Local application imports


def geode_objects_dict():
return {
Expand Down
31 changes: 31 additions & 0 deletions src/opengeodeweb_back/routes/blueprint_routes.py
Original file line number Diff line number Diff line change
Expand Up @@ -304,6 +304,37 @@ def create_point():
)


with open(
os.path.join(schemas, "vertex_attribute_names.json"),
"r",
) as file:
vertex_attribute_names_json = json.load(file)


@routes.route(
vertex_attribute_names_json["route"],
methods=vertex_attribute_names_json["methods"],
)
def vertex_attribute_names():

UPLOAD_FOLDER = flask.current_app.config["UPLOAD_FOLDER"]
utils_functions.validate_request(flask.request, vertex_attribute_names_json)
file_absolute_path = os.path.join(
UPLOAD_FOLDER, werkzeug.utils.secure_filename(flask.request.json["filename"])
)
data = geode_functions.load(
flask.request.json["input_geode_object"], file_absolute_path
)
vertex_attribute_names = data.vertex_attribute_manager().attribute_names()
print(f"vertex_attribute_names: {vertex_attribute_names}", flush=True)
return flask.make_response(
{
"vertex_attribute_names": vertex_attribute_names,
},
200,
)


with open(
os.path.join(schemas, "ping.json"),
"r",
Expand Down
15 changes: 15 additions & 0 deletions src/opengeodeweb_back/routes/schemas/vertex_attribute_names.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"route": "/vertex_attribute_names",
"methods": ["POST"],
"type": "object",
"properties": {
"input_geode_object": {
"type": "string"
},
"filename": {
"type": "string"
}
},
"required": ["input_geode_object", "filename"],
"additionalProperties": false
}
25 changes: 25 additions & 0 deletions src/opengeodeweb_back/test_utils.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Standard library imports

# Third party imports

# Local application imports


def test_route_wrong_params(client, route, get_full_data):
for key, value in get_full_data().items():
json = get_full_data()
json.pop(key)
response = client.post(route, json=json)
assert response.status_code == 400
error_description = response.json["description"]
assert error_description == f"Validation error: '{key}' is a required property"

json = get_full_data()
json["dumb_key"] = "dumb_value"
response = client.post(route, json=json)
assert response.status_code == 400
error_description = response.json["description"]
assert (
error_description
== "Validation error: Additional properties are not allowed ('dumb_key' was unexpected)"
)
7 changes: 6 additions & 1 deletion tests/conftest.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
# Standard library imports
import time

# Third party imports
import pytest

# Local application imports
from app import app
import time


@pytest.fixture
Expand Down
5 changes: 5 additions & 0 deletions tests/test_geode_functions.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
# Standard library imports
import os
import uuid

# Third party imports

# Local application imports
from src.opengeodeweb_back import geode_functions, geode_objects


Expand Down
Loading