Skip to content

Commit

Permalink
fixup! issue #76 add rules for top level process merging
Browse files Browse the repository at this point in the history
  • Loading branch information
soxofaan committed Nov 24, 2022
1 parent c48d3ad commit d323710
Show file tree
Hide file tree
Showing 2 changed files with 64 additions and 4 deletions.
8 changes: 4 additions & 4 deletions src/openeo_aggregator/metadata/merging.py
Original file line number Diff line number Diff line change
Expand Up @@ -324,10 +324,10 @@ def merge_process_metadata(self, by_backend: Dict[str, dict]) -> dict:
merged, "categories", self._merge_process_categories(by_backend=by_backend)
)

merged["deprecated"] = any(v for v in getter.get("deprecated") if v is True)
merged["experimental"] = any(v for v in getter.get("experimental") if v is True)
merged["examples"] = list(set(getter.get("examples")))
merged["links"] = list(set(getter.get("links")))
merged["deprecated"] = any(getter.get("deprecated"))
merged["experimental"] = any(getter.get("experimental"))
merged["examples"] = getter.concat("examples", skip_duplicates=True)
merged["links"] = getter.concat("links", skip_duplicates=True)

return merged

Expand Down
60 changes: 60 additions & 0 deletions tests/metadata/test_merging.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

from openeo_aggregator.metadata.merging import ProcessMetadataMerger, json_diff
from openeo_aggregator.testing import same_repr
from openeo_driver.testing import DictSubSet


class TestMergeProcessMetadata:
@pytest.fixture
Expand Down Expand Up @@ -609,6 +611,64 @@ def test_merge_process_parameters_recursive2(self, merger, reporter):

assert reporter.logs == []

@pytest.mark.parametrize(
["flag", "v1", "v2", "expected"],
[
("experimental", False, False, False),
("experimental", False, True, True),
("deprecated", False, False, False),
("deprecated", True, False, True),
],
)
def test_merge_process_flags(self, merger, reporter, flag, v1, v2, expected):
result = merger.merge_process_metadata(
{
"b1": {"id": "add", flag: v1},
"b2": {"id": "add", flag: v2},
}
)
assert result == DictSubSet({"id": "add", flag: expected})

def test_merge_process_examples(self, merger, reporter):
result = merger.merge_process_metadata(
{
"b1": {
"id": "add",
"examples": [{"arguments": {"x": 3, "y": 5}, "returns": 8}],
},
"b2": {
"id": "add",
"examples": [{"arguments": {"x": 1, "y": 1}, "returns": 2}],
},
}
)
assert result == DictSubSet(
{
"id": "add",
"examples": [
{"arguments": {"x": 3, "y": 5}, "returns": 8},
{"arguments": {"x": 1, "y": 1}, "returns": 2},
],
}
)

def test_merge_process_links(self, merger, reporter):
result = merger.merge_process_metadata(
{
"b1": {"id": "add", "links": [{"rel": "about", "href": "/a"}]},
"b2": {"id": "add", "links": [{"rel": "about", "href": "/b"}]},
}
)
assert result == DictSubSet(
{
"id": "add",
"links": [
{"rel": "about", "href": "/a"},
{"rel": "about", "href": "/b"},
],
}
)


def test_json_diff_empty():
assert json_diff([1, 2], [1, 2]) == []
Expand Down

0 comments on commit d323710

Please sign in to comment.