Skip to content

Commit

Permalink
test: fix tests for changes made to the class #260
Browse files Browse the repository at this point in the history
- Input to init is now expected to be different, so this has been changed to suit
  • Loading branch information
MRichards99 committed Dec 20, 2021
1 parent 9a9e957 commit bcd5ec3
Show file tree
Hide file tree
Showing 2 changed files with 77 additions and 71 deletions.
26 changes: 16 additions & 10 deletions test/search_api/test_nested_where_filters.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

from datagateway_api.src.search_api.filters import SearchAPIWhereFilter
from datagateway_api.src.search_api.nested_where_filters import NestedWhereFilters
from datagateway_api.src.search_api.query import SearchAPIQuery


class TestNestedWhereFilters:
Expand Down Expand Up @@ -73,26 +74,29 @@ def test_str_filters(self, lhs, rhs, joining_operator, expected_where_clause):
assert where_clause == expected_where_clause

@pytest.mark.parametrize(
"lhs, rhs, joining_operator, expected_where_clause",
"lhs, rhs, joining_operator, query, expected_where_clause",
[
pytest.param(
SearchAPIWhereFilter("name", "test name", "eq"),
SearchAPIWhereFilter("id", 3, "eq"),
"OR",
SearchAPIQuery("File"),
"(o.name = 'test name' OR o.id = '3')",
id="(o.name = 'test name' OR o.id = '3')",
id="(o.title = 'test name' OR o.id = '3')",
),
pytest.param(
[SearchAPIWhereFilter("name", "test name", "eq")],
SearchAPIWhereFilter("id", 3, "eq"),
"OR",
SearchAPIQuery("File"),
"(o.name = 'test name' OR o.id = '3')",
id="Single filter list in LHS",
),
pytest.param(
[SearchAPIWhereFilter("name", "test name", "eq")],
[SearchAPIWhereFilter("id", 3, "eq")],
"OR",
SearchAPIQuery("File"),
"(o.name = 'test name' OR o.id = '3')",
id="Single filter list in LHS and RHS",
),
Expand All @@ -103,31 +107,33 @@ def test_str_filters(self, lhs, rhs, joining_operator, expected_where_clause):
],
[SearchAPIWhereFilter("id", 3, "gt")],
"AND",
SearchAPIQuery("File"),
"(o.name = 'test name' AND o.id < '10' AND o.id > '3')",
id="Multiple filters on LHS",
),
pytest.param(
[
SearchAPIWhereFilter("name", "test name", "eq"),
SearchAPIWhereFilter("id", 10, "lt"),
SearchAPIWhereFilter("title", "test name", "eq"),
SearchAPIWhereFilter("pid", 10, "lt"),
],
[
SearchAPIWhereFilter("id", 3, "gt"),
SearchAPIWhereFilter("doi", "Test DOI", "like"),
SearchAPIWhereFilter("pid", 3, "gt"),
SearchAPIWhereFilter("summary", "Test Summary", "like"),
],
"AND",
"(o.name = 'test name' AND o.id < '10' AND o.id > '3' AND o.doi like"
" '%Test DOI%')",
SearchAPIQuery("Document"),
"(o.name = 'test name' AND o.doi < '10' AND o.doi > '3' AND o.summary"
" like '%Test Summary%')",
id="Multiple filters on LHS and RHS",
),
],
)
def test_search_api_filters(
self, lhs, rhs, joining_operator, expected_where_clause,
self, lhs, rhs, joining_operator, query, expected_where_clause,
):
# TODO - Is creating clients causing this to be slow? Test once session handler
# work merged
test_nest = NestedWhereFilters(lhs, rhs, joining_operator)
test_nest = NestedWhereFilters(lhs, rhs, joining_operator, query)
where_clause = str(test_nest)
assert where_clause == expected_where_clause

Expand Down
Loading

0 comments on commit bcd5ec3

Please sign in to comment.