Skip to content

Commit

Permalink
[Fixes #12657] Refactor supported type, fix data retriever and refact…
Browse files Browse the repository at this point in the history
…or handlers configuration
  • Loading branch information
mattiagiupponi committed Oct 18, 2024
1 parent ec76dff commit 49edf76
Show file tree
Hide file tree
Showing 21 changed files with 92 additions and 49 deletions.
1 change: 1 addition & 0 deletions geonode/geoserver/management/commands/importlayers.py
Original file line number Diff line number Diff line change
Expand Up @@ -149,6 +149,7 @@ def execute(self):
params[name] = os.path.basename(value.name)

params["non_interactive"] = 'true'
params["action"] = 'upload'
response = client.post(
urljoin(self.host, "/api/v2/uploads/upload/"),
auth=HTTPBasicAuth(self.username, self.password),
Expand Down
2 changes: 1 addition & 1 deletion geonode/resource/api/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,7 @@ def test_endpoint_should_raise_error_if_pk_is_not_passed(self):
def test_endpoint_should_return_the_source(self):
# creating dummy execution request
obj = ExecutionRequest.objects.create(
user=self.superuser, func_name="import_new_resource", action="import", source="upload_workflow"
user=self.superuser, func_name="import_new_resource", action="upload", source="upload_workflow"
)
self.client.force_login(self.superuser)

Expand Down
7 changes: 7 additions & 0 deletions geonode/upload/api/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ def test_raise_exception_if_file_is_not_a_handled(self):
self.client.force_login(get_user_model().objects.get(username="admin"))
payload = {
"base_file": SimpleUploadedFile(name="file.invalid", content=b"abc"),
"action": "upload"
}
response = self.client.post(self.url, data=payload)
self.assertEqual(500, response.status_code)
Expand All @@ -76,6 +77,7 @@ def test_gpkg_raise_error_with_invalid_payload(self):
content=b'{"type": "FeatureCollection", "content": "some-content"}',
),
"store_spatial_files": "invalid",
"action": "upload"
}
expected = {
"success": False,
Expand All @@ -99,6 +101,7 @@ def test_gpkg_task_is_called(self, patch_upload):
content=b'{"type": "FeatureCollection", "content": "some-content"}',
),
"store_spatial_files": True,
"action": "upload"
}

response = self.client.post(self.url, data=payload)
Expand All @@ -116,6 +119,7 @@ def test_geojson_task_is_called(self, patch_upload):
content=b'{"type": "FeatureCollection", "content": "some-content"}',
),
"store_spatial_files": True,
"action": "upload"
}

response = self.client.post(self.url, data=payload)
Expand All @@ -133,6 +137,7 @@ def test_zip_file_is_unzip_and_the_handler_is_found(self, patch_upload):
"base_file": open(f"{project_dir}/tests/fixture/valid.zip", "rb"),
"zip_file": open(f"{project_dir}/tests/fixture/valid.zip", "rb"),
"store_spatial_files": True,
"action": "upload"
}

response = self.client.post(self.url, data=payload)
Expand Down Expand Up @@ -191,6 +196,7 @@ def test_asset_is_created_before_the_import_start(self, patch_upload):
content=b'{"type": "FeatureCollection", "content": "some-content"}',
),
"store_spatial_files": True,
"action": "upload"
}

response = self.client.post(self.url, data=payload)
Expand Down Expand Up @@ -221,6 +227,7 @@ def test_asset_should_be_deleted_if_created_during_with_exception(
content=b'{"type": "FeatureCollection", "content": "some-content"}',
),
"store_spatial_files": True,
"action": "upload"
}

response = self.client.post(self.url, data=payload)
Expand Down
6 changes: 3 additions & 3 deletions geonode/upload/handlers/common/test_remote.py
Original file line number Diff line number Diff line change
Expand Up @@ -82,8 +82,8 @@ def test_task_list_is_the_expected_one(self):
"geonode.upload.import_resource",
"geonode.upload.create_geonode_resource",
)
self.assertEqual(len(self.handler.TASKS["import"]), 3)
self.assertTupleEqual(expected, self.handler.TASKS["import"])
self.assertEqual(len(self.handler.TASKS["upload"]), 3)
self.assertTupleEqual(expected, self.handler.TASKS["upload"])

def test_task_list_is_the_expected_one_geojson(self):
expected = (
Expand All @@ -106,7 +106,7 @@ def test_is_valid_should_pass_with_valid_url(self):
def test_extract_params_from_data(self):
actual, _data = self.handler.extract_params_from_data(
_data={"defaults": '{"url": "http://abc123defsadsa.org", "title": "Remote Title", "type": "3dtiles"}'},
action="import",
action="upload",
)
self.assertTrue("title" in actual)
self.assertTrue("url" in actual)
Expand Down
4 changes: 2 additions & 2 deletions geonode/upload/handlers/csv/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -57,8 +57,8 @@ def test_task_list_is_the_expected_one(self):
"geonode.upload.publish_resource",
"geonode.upload.create_geonode_resource",
)
self.assertEqual(len(self.handler.TASKS["import"]), 4)
self.assertTupleEqual(expected, self.handler.TASKS["import"])
self.assertEqual(len(self.handler.TASKS["upload"]), 4)
self.assertTupleEqual(expected, self.handler.TASKS["upload"])

def test_task_list_is_the_expected_one_geojson(self):
expected = (
Expand Down
4 changes: 2 additions & 2 deletions geonode/upload/handlers/geojson/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -54,8 +54,8 @@ def test_task_list_is_the_expected_one(self):
"geonode.upload.publish_resource",
"geonode.upload.create_geonode_resource",
)
self.assertEqual(len(self.handler.TASKS["import"]), 4)
self.assertTupleEqual(expected, self.handler.TASKS["import"])
self.assertEqual(len(self.handler.TASKS["upload"]), 4)
self.assertTupleEqual(expected, self.handler.TASKS["upload"])

def test_task_list_is_the_expected_one_copy(self):
expected = (
Expand Down
4 changes: 2 additions & 2 deletions geonode/upload/handlers/geotiff/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,8 +48,8 @@ def test_task_list_is_the_expected_one(self):
"geonode.upload.publish_resource",
"geonode.upload.create_geonode_resource",
)
self.assertEqual(len(self.handler.TASKS["import"]), 4)
self.assertTupleEqual(expected, self.handler.TASKS["import"])
self.assertEqual(len(self.handler.TASKS["upload"]), 4)
self.assertTupleEqual(expected, self.handler.TASKS["upload"])

def test_task_list_is_the_expected_one_copy(self):
expected = (
Expand Down
4 changes: 2 additions & 2 deletions geonode/upload/handlers/gpkg/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -55,8 +55,8 @@ def test_task_list_is_the_expected_one(self):
"geonode.upload.publish_resource",
"geonode.upload.create_geonode_resource",
)
self.assertEqual(len(self.handler.TASKS["import"]), 4)
self.assertTupleEqual(expected, self.handler.TASKS["import"])
self.assertEqual(len(self.handler.TASKS["upload"]), 4)
self.assertTupleEqual(expected, self.handler.TASKS["upload"])

def test_task_list_is_the_expected_one_geojson(self):
expected = (
Expand Down
4 changes: 2 additions & 2 deletions geonode/upload/handlers/kml/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,8 @@ def test_task_list_is_the_expected_one(self):
"geonode.upload.publish_resource",
"geonode.upload.create_geonode_resource",
)
self.assertEqual(len(self.handler.TASKS["import"]), 4)
self.assertTupleEqual(expected, self.handler.TASKS["import"])
self.assertEqual(len(self.handler.TASKS["upload"]), 4)
self.assertTupleEqual(expected, self.handler.TASKS["upload"])

def test_task_list_is_the_expected_one_geojson(self):
expected = (
Expand Down
6 changes: 3 additions & 3 deletions geonode/upload/handlers/remote/tests/test_3dtiles.py
Original file line number Diff line number Diff line change
Expand Up @@ -83,8 +83,8 @@ def test_task_list_is_the_expected_one(self):
"geonode.upload.import_resource",
"geonode.upload.create_geonode_resource",
)
self.assertEqual(len(self.handler.TASKS["import"]), 3)
self.assertTupleEqual(expected, self.handler.TASKS["import"])
self.assertEqual(len(self.handler.TASKS["upload"]), 3)
self.assertTupleEqual(expected, self.handler.TASKS["upload"])

def test_task_list_is_the_expected_one_geojson(self):
expected = (
Expand All @@ -107,7 +107,7 @@ def test_is_valid_should_pass_with_valid_url(self):
def test_extract_params_from_data(self):
actual, _data = self.handler.extract_params_from_data(
_data={"defaults": '{"url": "http://abc123defsadsa.org", "title": "Remote Title", "type": "3dtiles"}'},
action="import",
action="upload",
)
self.assertTrue("title" in actual)
self.assertTrue("url" in actual)
Expand Down
6 changes: 3 additions & 3 deletions geonode/upload/handlers/remote/tests/test_wms.py
Original file line number Diff line number Diff line change
Expand Up @@ -96,8 +96,8 @@ def test_task_list_is_the_expected_one(self):
"geonode.upload.import_resource",
"geonode.upload.create_geonode_resource",
)
self.assertEqual(len(self.handler.TASKS["import"]), 3)
self.assertTupleEqual(expected, self.handler.TASKS["import"])
self.assertEqual(len(self.handler.TASKS["upload"]), 3)
self.assertTupleEqual(expected, self.handler.TASKS["upload"])

def test_task_list_is_the_expected_one_geojson(self):
expected = (
Expand All @@ -120,7 +120,7 @@ def test_is_valid_should_pass_with_valid_url(self):
def test_extract_params_from_data(self):
actual, _data = self.handler.extract_params_from_data(
_data={"defaults": f"{self.valid_payload_with_parse_true}"},
action="import",
action="upload",
)
self.assertTrue("title" in actual)
self.assertTrue("url" in actual)
Expand Down
4 changes: 2 additions & 2 deletions geonode/upload/handlers/shapefile/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -62,8 +62,8 @@ def test_task_list_is_the_expected_one(self):
"geonode.upload.publish_resource",
"geonode.upload.create_geonode_resource",
)
self.assertEqual(len(self.handler.TASKS["import"]), 4)
self.assertTupleEqual(expected, self.handler.TASKS["import"])
self.assertEqual(len(self.handler.TASKS["upload"]), 4)
self.assertTupleEqual(expected, self.handler.TASKS["upload"])

def test_copy_task_list_is_the_expected_one(self):
expected = (
Expand Down
6 changes: 3 additions & 3 deletions geonode/upload/handlers/sld/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ def setUpClass(cls):
cls.valid_files = {
"base_file": "/tmp/test_sld.sld",
"sld_file": "/tmp/test_sld.sld",
"action": "resource_file_upload",
"action": "resource_sld_upload",
}
cls.owner = get_user_model().objects.first()
cls.layer = create_single_dataset(name="sld_dataset", owner=cls.owner)
Expand All @@ -59,8 +59,8 @@ def test_task_list_is_the_expected_one(self):
"start_import",
"geonode.upload.import_resource",
)
self.assertEqual(len(self.handler.TASKS["import"]), 2)
self.assertTupleEqual(expected, self.handler.TASKS["import"])
self.assertEqual(len(self.handler.TASKS["resource_sld_upload"]), 2)
self.assertTupleEqual(expected, self.handler.TASKS["resource_sld_upload"])

def test_is_valid_should_raise_exception_if_the_sld_is_invalid(self):
with self.assertRaises(InvalidSldException) as _exc:
Expand Down
16 changes: 10 additions & 6 deletions geonode/upload/handlers/tiles3d/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -58,8 +58,8 @@ def test_task_list_is_the_expected_one(self):
"geonode.upload.import_resource",
"geonode.upload.create_geonode_resource",
)
self.assertEqual(len(self.handler.TASKS["import"]), 3)
self.assertTupleEqual(expected, self.handler.TASKS["import"])
self.assertEqual(len(self.handler.TASKS["upload"]), 3)
self.assertTupleEqual(expected, self.handler.TASKS["upload"])

def test_task_list_is_the_expected_one_copy(self):
expected = (
Expand Down Expand Up @@ -190,10 +190,14 @@ def test_supported_file_extension_config(self):
"""
expected = {
"id": "3dtiles",
"label": "3D Tiles",
"format": "vector",
"ext": ["json"],
"optional": ["xml", "sld"],
"formats": [
{
"label": "3D Tiles",
"required_ext": ["zip"],
}
],
"actions": list(self.TASKS.keys()),
"type": "vector",
}
actual = self.handler.supported_file_extension_config
self.assertDictEqual(actual, expected)
Expand Down
6 changes: 3 additions & 3 deletions geonode/upload/handlers/xml/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ def setUpClass(cls):
cls.valid_files = {
"base_file": "/tmp/test_xml.xml",
"xml_file": "/tmp/test_xml.xml",
"action": "resource_file_upload",
"action": "resource_metadata_upload",
}
cls.owner = get_user_model().objects.first()
cls.layer = create_single_dataset(name="extruded_polygon", owner=cls.owner)
Expand All @@ -58,8 +58,8 @@ def test_task_list_is_the_expected_one(self):
"start_import",
"geonode.upload.import_resource",
)
self.assertEqual(len(self.handler.TASKS["import"]), 2)
self.assertTupleEqual(expected, self.handler.TASKS["import"])
self.assertEqual(len(self.handler.TASKS["resource_metadata_upload"]), 2)
self.assertTupleEqual(expected, self.handler.TASKS["resource_metadata_upload"])

def test_is_valid_should_raise_exception_if_the_xml_is_invalid(self):
with self.assertRaises(InvalidXmlException) as _exc:
Expand Down
Loading

0 comments on commit 49edf76

Please sign in to comment.