Skip to content

Commit 09e8fe4

Browse files
committed
DummyStacApi._get_search tweak
cherry-picked from #794/#798
1 parent bb50349 commit 09e8fe4

File tree

1 file changed

+14
-10
lines changed

1 file changed

+14
-10
lines changed

tests/extra/job_management/test_stac_job_db.py

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -520,21 +520,25 @@ def _post_collections_bulk_items(self, request, context):
520520
def _get_search(self, request, context):
521521
"""Handler of `GET /search` requests."""
522522
collections = request.qs["collections"][0].split(",")
523-
filter = request.qs["filter"][0] if "filter" in request.qs else None
524-
525-
if filter:
526-
# TODO: use a more robust CQL2-text parser?
527-
assert re.match(r"^\s*\"properties\.status\"='\w+'(\s+or\s+\"properties\.status\"='\w+')*\s*$", filter)
528-
statuses = re.findall(r"\"properties\.status\"='(\w+)'", filter)
529-
else:
530-
statuses = None
531-
532523
items = [
533524
item
534525
for cid in collections
535526
for item in self.items.get(cid, {}).values()
536-
if statuses is None or item.get("properties", {}).get("status") in statuses
537527
]
528+
if "ids" in request.qs:
529+
[ids] = request.qs["ids"]
530+
ids = set(ids.split(","))
531+
items = [i for i in items if i.get("id") in ids]
532+
if "filter" in request.qs:
533+
[property_filter] = request.qs["filter"]
534+
# TODO: use a more robust CQL2-text parser?
535+
assert request.qs["filter-lang"] == ["cql2-text"]
536+
assert re.match(
537+
r"^\s*\"properties\.status\"='\w+'(\s+or\s+\"properties\.status\"='\w+')*\s*$", property_filter
538+
)
539+
statuses = set(re.findall(r"\"properties\.status\"='(\w+)'", property_filter))
540+
items = [i for i in items if i.get("properties", {}).get("status") in statuses]
541+
538542
return {
539543
"type": "FeatureCollection",
540544
"features": items,

0 commit comments

Comments
 (0)