Skip to content

Commit

Permalink
Copy additionalProperties attibute to JSON schema
Browse files Browse the repository at this point in the history
  • Loading branch information
amarandon committed Dec 12, 2024
1 parent 4de7b7b commit 9667d5a
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 6 deletions.
8 changes: 3 additions & 5 deletions eodag_labextension/handlers.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
import logging
import re

import eodag
import orjson
import tornado
from eodag import EODataAccessGateway, SearchResult
Expand Down Expand Up @@ -296,14 +295,13 @@ def get(self):
queryables_dict = eodag_api.list_queryables(**queryables_kwargs)
json_schema = queryables_dict.get_model().model_json_schema()
self._remove_null_defaults(json_schema)
json_schema["required"] = []
json_schema["additionalProperties"] = False
json_schema["additionalProperties"] = queryables_dict.additional_properties
self.finish(json_schema)

def _remove_null_defaults(self, json_schema):
for item in json_schema['properties'].values():
for item in json_schema["properties"].values():
if item.get("default") is None:
item.pop('default', None)
item.pop("default", None)


def setup_handlers(web_app, url_path):
Expand Down
7 changes: 6 additions & 1 deletion tests/test_handlers.py
Original file line number Diff line number Diff line change
Expand Up @@ -218,14 +218,19 @@ def test_search(self, mock_search):
mock_search.reset_mock()
self.fetch_results_error("/eodag/S2_MSI_L1C", 400, method="POST", body=json.dumps({"geom": {"foo": "bar"}}))

@mock.patch("eodag.api.core.EODataAccessGateway.list_queryables", autospec=True, return_value=QueryablesDict([]))
@mock.patch(
"eodag.api.core.EODataAccessGateway.list_queryables",
autospec=True,
return_value=QueryablesDict(additional_properties=False),
)
def test_queryables(self, mock_list_queryables):
results = self.fetch_results(
"/eodag/queryables?"
"provider=some_provider&productType=some_product_type"
"&param1=paramValue1&param2=paramValue2"
)
self.assertEqual(results["properties"], {})
self.assertFalse(results["additionalProperties"])
mock_list_queryables.assert_called_with(
mock.ANY,
provider="some_provider",
Expand Down

0 comments on commit 9667d5a

Please sign in to comment.