Skip to content

Commit

Permalink
Merge pull request #964 from materialsproject/bugfix/sorting_query_op
Browse files Browse the repository at this point in the history
Bugfix in sorting query operator
  • Loading branch information
munrojm committed Jun 11, 2024
2 parents 786c331 + 4f058fe commit 08bdc65
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 5 deletions.
11 changes: 7 additions & 4 deletions src/maggma/api/query_operator/sorting.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,12 +42,15 @@ def query(
)

for sort_field in field_list:
query_entry = {sort_field: 1}

if sort_field.startswith("-"):
query_entry = {sort_field[1:]: -1}
sort_field = sort_field[1:]

if self.fields and sort_field not in self.fields:
continue

if sort_field[0] == "-":
sort.update({sort_field[1:]: -1})
else:
sort.update({sort_field: 1})
sort.update(query_entry)

return {"sort": sort}
7 changes: 6 additions & 1 deletion tests/api/test_query_operators.py
Original file line number Diff line number Diff line change
Expand Up @@ -95,10 +95,15 @@ def test_numeric_query_serialization():

def test_sort_query_functionality():
op = SortQuery()

assert op.query(_sort_fields="volume,-density") == {"sort": {"volume": 1, "density": -1}}


def test_sort_query_fail():
op = SortQuery(max_num=1)
with pytest.raises(HTTPException):
op.query(_sort_fields="volume,-density")


def test_sort_serialization():
op = SortQuery()

Expand Down

0 comments on commit 08bdc65

Please sign in to comment.