Skip to content
Merged
Show file tree
Hide file tree
Changes from all 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
7 changes: 1 addition & 6 deletions geoengine/permissions.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@

from __future__ import annotations

import ast
from enum import Enum
from uuid import UUID

Expand Down Expand Up @@ -255,11 +254,7 @@ def add_role(name: str, timeout: int = 60) -> RoleId:
user_api = geoengine_openapi_client.UserApi(api_client)
response = user_api.add_role_handler(geoengine_openapi_client.AddRole(name=name, _request_timeout=timeout))

# TODO: find out why JSON string is faulty
# parsed_response = json.loads(response)
parsed_response: dict[str, str] = ast.literal_eval(response)

return RoleId.from_response(parsed_response)
return RoleId(response.id)


def remove_role(role: RoleId, timeout: int = 60):
Expand Down
1 change: 0 additions & 1 deletion geoengine/tasks.py
Original file line number Diff line number Diff line change
Expand Up @@ -267,7 +267,6 @@ def get_status(self, timeout: int = 3600) -> TaskStatusInfo:

with geoengine_openapi_client.ApiClient(session.configuration) as api_client:
tasks_api = geoengine_openapi_client.TasksApi(api_client)
print(task_id)
response = tasks_api.status_handler(task_id, _request_timeout=timeout)

return TaskStatusInfo.from_response(response)
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ readme = { file = "README.md", content-type = "text/markdown" }
license-files = ["LICENSE"]
requires-python = ">=3.10"
dependencies = [
"geoengine-openapi-client == 0.0.29",
"geoengine-openapi-client == 0.0.30",
"geopandas >=1.0,<2.0",
"matplotlib >=3.5,<3.11",
"numpy >=1.21,<2.5",
Expand Down
81 changes: 15 additions & 66 deletions tests/test_workflow_storage.py
Original file line number Diff line number Diff line change
@@ -1,15 +1,13 @@
"""Tests for WMS calls"""

import unittest
from uuid import UUID

import geoengine_openapi_client

import geoengine as ge
from geoengine.datasets import DatasetName, StoredDataset
from geoengine.resource_identifier import UploadId

from . import UrllibMocker
from geoengine.tasks import TaskStatus
from tests.ge_test import GeoEngineTestInstance


class WorkflowStorageTests(unittest.TestCase):
Expand All @@ -19,63 +17,11 @@ def setUp(self) -> None:
ge.reset(False)

def test_storing_workflow(self):
expected_request_text = {
"asCog": True,
"description": "Bar",
"displayName": "Foo",
"query": {
"spatialBounds": {
"lowerRightCoordinate": {"x": 180, "y": -90},
"upperLeftCoordinate": {"x": -180, "y": 90},
},
"spatialResolution": {"x": 1.8, "y": 1.8},
"timeInterval": {"end": 1396353600000, "start": 1396353600000},
},
}

with UrllibMocker() as m:
m.post(
"http://mock-instance/anonymous",
json={"id": "c4983c3e-9b53-47ae-bda9-382223bd5081", "project": None, "view": None},
)

m.post(
"http://mock-instance/workflow",
json={"id": "5b9508a8-bd34-5a1c-acd6-75bb832d2d38"},
request_headers={"Authorization": "Bearer c4983c3e-9b53-47ae-bda9-382223bd5081"},
)

m.get(
"http://mock-instance/workflow/5b9508a8-bd34-5a1c-acd6-75bb832d2d38/metadata",
json={
"type": "raster",
"dataType": "U8",
"spatialReference": "EPSG:4326",
"bands": [{"name": "band", "measurement": {"type": "unitless"}}],
},
request_headers={"Authorization": "Bearer c4983c3e-9b53-47ae-bda9-382223bd5081"},
)
# TODO: use `enterContext(cm)` instead of `with cm: ` in Python 3.11
with GeoEngineTestInstance() as ge_instance:
ge_instance.wait_for_ready()

m.post(
"http://mock-instance/datasetFromWorkflow/5b9508a8-bd34-5a1c-acd6-75bb832d2d38",
expected_request_body=expected_request_text,
json={"taskId": "9ec828ef-c3da-4016-8cc7-79e5556267fc"},
request_headers={"Authorization": "Bearer c4983c3e-9b53-47ae-bda9-382223bd5081"},
)

m.get(
"http://mock-instance/tasks/9ec828ef-c3da-4016-8cc7-79e5556267fc/status",
json={
"status": "completed",
"info": {"dataset": "my_new_dataset", "upload": "3086f494-d5a4-4b51-a14b-3b29f8bf7bb0"},
"timeTotal": "00:00:00",
"taskType": "create-dataset",
"description": "Creating dataset Foo from workflow 5b9508a8-bd34-5a1c-acd6-75bb832d2d38",
"timeStarted": "2023-02-16T15:25:45.390Z",
},
)

ge.initialize("http://mock-instance")
ge.initialize(ge_instance.address())

workflow_definition = {"type": "Raster", "operator": {"type": "GdalSource", "params": {"data": "ndvi"}}}

Expand All @@ -89,14 +35,17 @@ def test_storing_workflow(self):
)

workflow = ge.register_workflow(workflow_definition)

dataset_name = f"{ge.get_session().user_id}:my_new_dataset"
task = workflow.save_as_dataset(
query,
None,
"Foo",
"Bar",
name=dataset_name,
display_name="Foo",
description="Bar",
)
task.wait_for_finish()
task_status = task.get_status()
stored_dataset = StoredDataset.from_response(task_status.info)
self.assertEqual(task_status.status, TaskStatus.COMPLETED)

self.assertEqual(stored_dataset.dataset_name, DatasetName("my_new_dataset"))
self.assertEqual(stored_dataset.upload_id, UploadId(UUID("3086f494-d5a4-4b51-a14b-3b29f8bf7bb0")))
stored_dataset = StoredDataset.from_response(task_status.info)
self.assertEqual(stored_dataset.dataset_name, DatasetName(dataset_name))