Skip to content

Commit

Permalink
test: remove test cases on things we're not going to support #259
Browse files Browse the repository at this point in the history
  • Loading branch information
MRichards99 committed Dec 3, 2021
1 parent 1abaf66 commit 38d17a5
Showing 1 changed file with 1 addition and 340 deletions.
341 changes: 1 addition & 340 deletions test/search_api/test_search_api_query_filter_factory.py
Original file line number Diff line number Diff line change
Expand Up @@ -1687,342 +1687,6 @@ def test_valid_include_filter_with_include_filter_in_scope(
if isinstance(test_filter, SearchAPIIncludeFilter):
assert test_filter.included_filters == included_entities

@pytest.mark.parametrize(
"test_request_filter, test_entity_name, expected_length"
", expected_included_entities, expected_limit_values",
[
pytest.param(
{
"filter": {
"include": [{"relation": "datasets", "scope": {"limit": 50}}],
},
},
"documents",
2,
[["datasets"], []],
[None, 50],
id="Single related model",
),
pytest.param(
{
"filter": {
"include": [
{"relation": "datasets", "scope": {"limit": 50}},
{"relation": "parameters", "scope": {"limit": 20}},
],
},
},
"documents",
4,
[["datasets"], [], ["parameters"], []],
[None, 50, None, 20],
id="Multiple related model",
),
pytest.param(
{
"filter": {
"include": [
{
"relation": "datasets",
"scope": {
"include": [
{
"relation": "documents",
"scope": {
"include": [{"relation": "parameters"}],
"limit": 20,
},
},
],
"limit": 50,
},
},
],
},
},
"documents",
5,
[
["datasets"],
["datasets.documents"],
["datasets.documents.parameters"],
[],
[],
],
[None, None, None, 20, 50],
id="Nested related models",
),
],
)
def test_valid_include_filter_with_limit_filter_in_scope(
self,
test_request_filter,
test_entity_name,
expected_length,
expected_included_entities,
expected_limit_values,
):
# TODO - do we need to support this??
filters = SearchAPIQueryFilterFactory.get_query_filter(
test_request_filter, test_entity_name,
)

assert len(filters) == expected_length

for test_filter, included_entities, limit_value in zip(
filters, expected_included_entities, expected_limit_values,
):
if isinstance(test_filter, SearchAPIIncludeFilter):
assert test_filter.included_filters == included_entities
if isinstance(test_filter, SearchAPILimitFilter):
assert test_filter.limit_value == limit_value

@pytest.mark.parametrize(
"test_request_filter, test_entity_name, expected_length"
", expected_included_entities, expected_skip_values",
[
pytest.param(
{
"filter": {
"include": [{"relation": "datasets", "scope": {"skip": 50}}],
},
},
"documents",
2,
[["datasets"], []],
[None, 50],
id="Single related model",
),
pytest.param(
{
"filter": {
"include": [
{"relation": "datasets", "scope": {"skip": 50}},
{"relation": "parameters", "scope": {"skip": 20}},
],
},
},
"documents",
4,
[["datasets"], [], ["parameters"], []],
[None, 50, None, 20],
id="Multiple related model",
),
pytest.param(
{
"filter": {
"include": [
{
"relation": "datasets",
"scope": {
"include": [
{
"relation": "documents",
"scope": {
"include": [{"relation": "parameters"}],
"skip": 20,
},
},
],
"skip": 50,
},
},
],
},
},
"documents",
5,
[
["datasets"],
["datasets.documents"],
["datasets.documents.parameters"],
[],
[],
],
[None, None, None, 20, 50],
id="Nested related models",
),
],
)
def test_valid_include_filter_with_skip_filter_in_scope(
self,
test_request_filter,
test_entity_name,
expected_length,
expected_included_entities,
expected_skip_values,
):
# TODO - do we need to support this??
filters = SearchAPIQueryFilterFactory.get_query_filter(
test_request_filter, test_entity_name,
)

assert len(filters) == expected_length

for test_filter, included_entities, skip_value in zip(
filters, expected_included_entities, expected_skip_values,
):
if isinstance(test_filter, SearchAPIIncludeFilter):
assert test_filter.included_filters == included_entities
if isinstance(test_filter, SearchAPISkipFilter):
assert test_filter.skip_value == skip_value

@pytest.mark.parametrize(
"test_request_filter, test_entity_name, expected_length"
", expected_included_entities, expected_where_filter_data"
", expected_limit_values, expected_skip_values",
[
pytest.param(
{
"filter": {
"include": [
{
"relation": "documents",
"scope": {
"where": {"title": "My Title"},
"include": [{"relation": "instrument"}],
"limit": 50,
"skip": 20,
},
},
],
},
},
"datasets",
5,
[["documents"], [], ["documents.instrument"], [], []],
[[], ["documents.title", "eq", "My Title", "and"], [], [], []],
[None, None, None, 50, None],
[None, None, None, None, 20],
id="Simple case",
),
pytest.param(
{
"filter": {
"include": [
{
"relation": "documents",
"scope": {
"where": {
"and": [
{
"and": [
{"summary": "My Test Summary"},
{"title": {"like": "Test title"}},
],
},
{
"and": [
{"pid": "Test pid"},
{"type": {"eq": "Test type"}},
],
},
{
"or": [
{"doi": "Test doi"},
{
"license": {
"like": "Test license",
},
},
],
},
],
},
"include": [
{
"relation": "instrument",
"scope": {
"where": {"name": "Instrument 1"},
"limit": 2,
},
},
],
"limit": 50,
"skip": 20,
},
},
],
},
},
"datasets",
12,
[
["documents"],
[],
[],
[],
[],
[],
[],
["documents.instrument"],
[],
[],
[],
[],
],
[
[],
["documents.summary", "eq", "My Test Summary", "and"],
["documents.title", "like", "Test title", "and"],
["documents.pid", "eq", "Test pid", "and"],
["documents.type", "eq", "Test type", "and"],
["documents.doi", "eq", "Test doi", "or"],
["documents.license", "like", "Test license", "or"],
[],
["documents.instrument.name", "eq", "Instrument 1", "and"],
[],
[],
[],
],
[None, None, None, None, None, None, None, None, None, 2, 50, None],
[None, None, None, None, None, None, None, None, None, None, None, 20],
id="Complex case",
),
],
)
def test_valid_include_filter_with_all_filters_in_scope(
self,
test_request_filter,
test_entity_name,
expected_length,
expected_included_entities,
expected_where_filter_data,
expected_limit_values,
expected_skip_values,
):
# TODO - are we going to support limit in include? If not, probably remove test?
filters = SearchAPIQueryFilterFactory.get_query_filter(
test_request_filter, test_entity_name,
)

assert len(filters) == expected_length

for (
test_filter,
included_entities,
where_filter_data,
limit_value,
skip_value,
) in zip(
filters,
expected_included_entities,
expected_where_filter_data,
expected_limit_values,
expected_skip_values,
):
if isinstance(test_filter, SearchAPIIncludeFilter):
assert test_filter.included_filters == included_entities
if isinstance(test_filter, SearchAPIWhereFilter):
assert test_filter.field == where_filter_data[0]
assert test_filter.operation == where_filter_data[1]
assert test_filter.value == where_filter_data[2]
assert test_filter.boolean_operator == where_filter_data[3]
if isinstance(test_filter, SearchAPILimitFilter):
assert test_filter.limit_value == limit_value
if isinstance(test_filter, SearchAPISkipFilter):
assert test_filter.skip_value == skip_value

@pytest.mark.parametrize(
"test_request_filter, expected_limit_value",
[
Expand Down Expand Up @@ -2103,10 +1767,7 @@ def test_valid_skip_filter(
"include": [
{
"relation": "instrument",
"scope": {
"where": {"name": "Instrument 1"},
"limit": 2,
},
"scope": {"where": {"name": "Instrument 1"}},
},
],
"limit": 50,
Expand Down

0 comments on commit 38d17a5

Please sign in to comment.