Skip to content

Commit

Permalink
[Fixes #12763] 3D tiles geometricError mandatory field should be on t… (
Browse files Browse the repository at this point in the history
#279)

* [Fixes #12763] 3D tiles geometricError mandatory field should be on tileset level

ref to GeoNode/geonode#12763

* fix tests

* Update tests.py

* Update test_end2end.py

* fix test

(cherry picked from commit fe4ccb5)
  • Loading branch information
mattiagiupponi authored and github-actions[bot] committed Dec 2, 2024
1 parent c4cfba4 commit f6d9873
Show file tree
Hide file tree
Showing 3 changed files with 4 additions and 5 deletions.
2 changes: 1 addition & 1 deletion importer/handlers/tiles3d/handler.py
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,7 @@ def validate_3dtile_payload(payload):
"The mandatory 'boundingVolume' for the key 'root' is missing"
)

error = payload.get("root", {}).get("geometricError", None)
error = payload.get("geometricError", None) or payload.get("root", {}).get("geometricError", None)
if error is None:
raise Invalid3DTilesException(
"The mandatory 'geometricError' for the key 'root' is missing"
Expand Down
5 changes: 2 additions & 3 deletions importer/handlers/tiles3d/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,7 @@ def test_validate_should_raise_exception_for_invalid_asset_key(self):
def test_validate_should_raise_exception_for_invalid_root_boundingVolume(self):
_json = {
"asset": {"version": "1.1"},
"geometricError": 1.0,
"geometricError": 1.0,
"root": {"foo": {"box": []}, "geometricError": 0.0},
}
_path = "/tmp/tileset.json"
Expand All @@ -159,7 +159,6 @@ def test_validate_should_raise_exception_for_invalid_root_boundingVolume(self):
def test_validate_should_raise_exception_for_invalid_root_geometricError(self):
_json = {
"asset": {"version": "1.1"},
"geometricError": 1.0,
"root": {"boundingVolume": {"box": []}, "foo": 0.0},
}
_path = "/tmp/tileset.json"
Expand All @@ -170,7 +169,7 @@ def test_validate_should_raise_exception_for_invalid_root_geometricError(self):

self.assertIsNotNone(_exc)
self.assertTrue(
"The mandatory 'geometricError' for the key 'root' is missing"
"The provided 3DTiles is not valid, some of the mandatory keys are missing. Mandatory keys are: 'asset', 'geometricError', 'root'"
in str(_exc.exception.detail)
)
os.remove(_path)
Expand Down
2 changes: 1 addition & 1 deletion importer/tests/end2end/test_end2end.py
Original file line number Diff line number Diff line change
Expand Up @@ -543,7 +543,7 @@ def test_import_wms(self):
"lookup": resource_to_take,
"parse_remote_metadata": True,
}
initial_name = res.title
initial_name = res.title.lower().replace(" ", "_")
assert_payload = {
"subtype": "remote",
"title": res.title,
Expand Down

0 comments on commit f6d9873

Please sign in to comment.