From 3fe8dfe79ac7e070db369471859b1793e54a0852 Mon Sep 17 00:00:00 2001 From: Matthew Richards Date: Thu, 24 Feb 2022 12:10:25 +0000 Subject: [PATCH 1/2] fix: fix `parameters.value` WHERE filter with between operator #270 --- datagateway_api/src/search_api/filters.py | 15 +++++++++++---- .../filters/test_search_api_where_filter.py | 8 ++++++++ 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/datagateway_api/src/search_api/filters.py b/datagateway_api/src/search_api/filters.py index 2786d0c2..d585db1e 100644 --- a/datagateway_api/src/search_api/filters.py +++ b/datagateway_api/src/search_api/filters.py @@ -49,12 +49,19 @@ def apply_filter(self, query): # matters): # {"Parameter": {"value": ["numericValue", "stringValue", "dateTimeValue"]}} # noqa: B950 if field_name == "value": - if isinstance(self.value, (int, float)): + # If the value is a list, extract the first value to determine which + # parameter value type should be used + if self.operation == "between" and isinstance(self.value, list): + filter_value = self.value[0] + else: + filter_value = self.value + + if isinstance(filter_value, (int, float)): icat_field_name = icat_field_name[0] - elif isinstance(self.value, datetime): + elif isinstance(filter_value, datetime): icat_field_name = icat_field_name[2] - elif isinstance(self.value, str): - if DateHandler.is_str_a_date(self.value): + elif isinstance(filter_value, str): + if DateHandler.is_str_a_date(filter_value): icat_field_name = icat_field_name[2] else: icat_field_name = icat_field_name[1] diff --git a/test/search_api/filters/test_search_api_where_filter.py b/test/search_api/filters/test_search_api_where_filter.py index f212b20c..5e2d8794 100644 --- a/test/search_api/filters/test_search_api_where_filter.py +++ b/test/search_api/filters/test_search_api_where_filter.py @@ -177,6 +177,14 @@ class TestSearchAPIWhereFilter: id="Numeric (float) parameter value (mapping that maps to multiple ICAT" "fields)", ), + pytest.param( + SearchAPIWhereFilter("parameters.value", [20, 30], "between"), + "Document", + "SELECT o FROM Investigation o JOIN o.parameters AS p WHERE" + " p.numericValue between '20' and '30'", + id="Numeric (int) parameter value with between operator (mapping that" + " maps to multiple ICAT fields)", + ), pytest.param( SearchAPIWhereFilter("parameters.value", ["test"], "eq"), "Document", From 2c21bab1a1a539ea10656254f9e4a315d712b262 Mon Sep 17 00:00:00 2001 From: Matthew Richards Date: Thu, 24 Feb 2022 12:15:31 +0000 Subject: [PATCH 2/2] test: add missing endpoint tests for example implementation queries #270 - Some tests rely on ICAT 5 so have been skipped until this is released --- .../endpoints/test_search_endpoint.py | 997 ++++++++++++++++++ 1 file changed, 997 insertions(+) diff --git a/test/search_api/endpoints/test_search_endpoint.py b/test/search_api/endpoints/test_search_endpoint.py index d75fb813..8e5cbe1f 100644 --- a/test/search_api/endpoints/test_search_endpoint.py +++ b/test/search_api/endpoints/test_search_endpoint.py @@ -424,6 +424,1003 @@ class TestSearchAPISearchEndpoint: [], id="Search datasets with isPublic condition (False)", ), + pytest.param( + "datasets", + '{"include": [{"relation": "techniques", "scope": {"where": {"name":' + '"TODO"}}}]}', + [], + # Skipped because this test relies on ICAT 5 entities + # TODO - edit the WHERE filter when we know the techniques test data + marks=pytest.mark.skip, + id="Search datasets with condition on techniques name (ICAT 5)", + ), + pytest.param( + "datasets", + '{"include": [{"relation": "parameters", "scope": {"where": {"and": [{' + '"name": "PARAMETERTYPE 39"}, {"value": {"between": [320300, 320320]}},' + '{"unit": "unit 39"}]}}}]}', + [ + { + "pid": "1-71624-154-5", + "title": "DATASET 50", + "isPublic": True, + "creationDate": "2008-05-29T03:28:31+00:00", + "size": None, + "documents": [], + "techniques": [], + "instrument": None, + "files": [], + "parameters": [ + { + "id": "39", + "name": "PARAMETERTYPE 39", + "value": 320310.0, + "unit": "unit 39", + "dataset": None, + "document": None, + }, + ], + "samples": [], + }, + ], + id="Search datasets with parameters include and conditions (between" + " operator, A AND B AND C)", + ), + pytest.param( + "datasets", + '{"include": [{"relation": "parameters", "scope": {"where": {"and": [{' + '"name": "PARAMETERTYPE 39"}, {"value": {"lt": 800000}}, {"unit":' + ' "unit 39"}]}}}]}', + [ + { + "pid": "1-71624-154-5", + "title": "DATASET 50", + "isPublic": True, + "creationDate": "2008-05-29T03:28:31+00:00", + "size": None, + "documents": [], + "techniques": [], + "instrument": None, + "files": [], + "parameters": [ + { + "id": "39", + "name": "PARAMETERTYPE 39", + "value": 320310.0, + "unit": "unit 39", + "dataset": None, + "document": None, + }, + ], + "samples": [], + }, + ], + id="Search datasets with parameters include and conditions (lt operator" + ", A AND B AND C)", + ), + pytest.param( + "datasets", + '{"include": [{"relation": "parameters", "scope": {"where": {"or": [{' + '"and": [{"name": "sample_state"}, {"value": "solid"}]}, {"and": [{' + '"name": "PARAMETERTYPE 39"}, {"value": 320310}]}]}}}]}', + [ + { + "pid": "1-71624-154-5", + "title": "DATASET 50", + "isPublic": True, + "creationDate": "2008-05-29T03:28:31+00:00", + "size": None, + "documents": [], + "techniques": [], + "instrument": None, + "files": [], + "parameters": [ + { + "id": "39", + "name": "PARAMETERTYPE 39", + "value": 320310.0, + "unit": "unit 39", + "dataset": None, + "document": None, + }, + ], + "samples": [], + }, + ], + id="Search datasets with parameters include and conditions ((A AND B)" + " OR (C AND D)", + ), + pytest.param( + "datasets", + '{"include": [{"relation": "files", "scope": {"where": {"text":' + ' "Datafile 10064"}}}]}', + [ + { + "pid": "0-468-20341-9", + "title": "DATASET 6", + "isPublic": True, + "creationDate": "2008-06-30T08:30:58+00:00", + "size": None, + "documents": [], + "techniques": [], + "instrument": None, + "files": [ + { + "id": "10064", + "name": "Datafile 10064", + "path": "/single/system/continue.jpeg", + "size": 83045226, + "dataset": None, + }, + { + "id": "10543", + "name": "Datafile 10543", + "path": "/product/also/change.png", + "size": 146218500, + "dataset": None, + }, + { + "id": "11022", + "name": "Datafile 11022", + "path": "/bed/necessary/however.png", + "size": 152028651, + "dataset": None, + }, + { + "id": "11501", + "name": "Datafile 11501", + "path": "/not/quickly/miss.bmp", + "size": 66136302, + "dataset": None, + }, + { + "id": "11980", + "name": "Datafile 11980", + "path": "/loss/probably/drug.png", + "size": 178760495, + "dataset": None, + }, + { + "id": "12459", + "name": "Datafile 12459", + "path": "/must/themselves/kitchen.gif", + "size": 44146972, + "dataset": None, + }, + { + "id": "12938", + "name": "Datafile 12938", + "path": "/student/picture/affect.jpg", + "size": 200384559, + "dataset": None, + }, + { + "id": "13417", + "name": "Datafile 13417", + "path": "/food/fall/beyond.tiff", + "size": 11264500, + "dataset": None, + }, + { + "id": "13896", + "name": "Datafile 13896", + "path": "/drop/white/evidence.png", + "size": 186906852, + "dataset": None, + }, + { + "id": "14375", + "name": "Datafile 14375", + "path": "/politics/letter/whatever.jpg", + "size": 30210023, + "dataset": None, + }, + { + "id": "1442", + "name": "Datafile 1442", + "path": "/leader/center/where.bmp", + "size": 185391340, + "dataset": None, + }, + { + "id": "14854", + "name": "Datafile 14854", + "path": "/have/example/visit.gif", + "size": 102389951, + "dataset": None, + }, + { + "id": "15333", + "name": "Datafile 15333", + "path": "/east/prevent/possible.png", + "size": 41357442, + "dataset": None, + }, + { + "id": "15812", + "name": "Datafile 15812", + "path": "/contain/office/he.jpg", + "size": 7380949, + "dataset": None, + }, + { + "id": "16291", + "name": "Datafile 16291", + "path": "/physical/son/important.jpg", + "size": 27353005, + "dataset": None, + }, + { + "id": "16770", + "name": "Datafile 16770", + "path": "/plan/citizen/child.gif", + "size": 19557768, + "dataset": None, + }, + { + "id": "17249", + "name": "Datafile 17249", + "path": "/get/tonight/chair.jpg", + "size": 124177764, + "dataset": None, + }, + { + "id": "17728", + "name": "Datafile 17728", + "path": "/office/back/difficult.jpg", + "size": 98003191, + "dataset": None, + }, + { + "id": "18207", + "name": "Datafile 18207", + "path": "/give/hour/detail.gif", + "size": 202104539, + "dataset": None, + }, + { + "id": "18686", + "name": "Datafile 18686", + "path": "/hold/whose/away.gif", + "size": 107794262, + "dataset": None, + }, + { + "id": "19165", + "name": "Datafile 19165", + "path": "/opportunity/national/set.bmp", + "size": 212316955, + "dataset": None, + }, + { + "id": "1921", + "name": "Datafile 1921", + "path": "/team/would/effort.gif", + "size": 69764788, + "dataset": None, + }, + { + "id": "19644", + "name": "Datafile 19644", + "path": "/necessary/second/of.bmp", + "size": 13528669, + "dataset": None, + }, + { + "id": "20123", + "name": "Datafile 20123", + "path": "/little/management/international.jpeg", + "size": 211770767, + "dataset": None, + }, + { + "id": "20602", + "name": "Datafile 20602", + "path": "/much/young/fine.tiff", + "size": 135507308, + "dataset": None, + }, + { + "id": "21081", + "name": "Datafile 21081", + "path": "/attack/sit/rest.gif", + "size": 188450019, + "dataset": None, + }, + { + "id": "21560", + "name": "Datafile 21560", + "path": "/move/point/service.bmp", + "size": 149702079, + "dataset": None, + }, + { + "id": "22039", + "name": "Datafile 22039", + "path": "/leave/pick/thing.bmp", + "size": 99893014, + "dataset": None, + }, + { + "id": "22518", + "name": "Datafile 22518", + "path": "/way/kitchen/this.bmp", + "size": 8262875, + "dataset": None, + }, + { + "id": "22997", + "name": "Datafile 22997", + "path": "/own/give/safe.tiff", + "size": 160609691, + "dataset": None, + }, + { + "id": "23476", + "name": "Datafile 23476", + "path": "/know/image/material.bmp", + "size": 119734022, + "dataset": None, + }, + { + "id": "23955", + "name": "Datafile 23955", + "path": "/mother/court/speech.jpg", + "size": 85860547, + "dataset": None, + }, + { + "id": "2400", + "name": "Datafile 2400", + "path": "/anyone/sell/strong.bmp", + "size": 137173831, + "dataset": None, + }, + { + "id": "24434", + "name": "Datafile 24434", + "path": "/fear/draw/work.tiff", + "size": 58498344, + "dataset": None, + }, + { + "id": "24913", + "name": "Datafile 24913", + "path": "/policy/political/point.png", + "size": 568312, + "dataset": None, + }, + { + "id": "25392", + "name": "Datafile 25392", + "path": "/college/then/join.tiff", + "size": 18417692, + "dataset": None, + }, + { + "id": "25871", + "name": "Datafile 25871", + "path": "/trade/worry/and.png", + "size": 7335141, + "dataset": None, + }, + { + "id": "26350", + "name": "Datafile 26350", + "path": "/be/check/cost.gif", + "size": 120149463, + "dataset": None, + }, + { + "id": "2879", + "name": "Datafile 2879", + "path": "/discover/provide/since.jpg", + "size": 134802178, + "dataset": None, + }, + { + "id": "3358", + "name": "Datafile 3358", + "path": "/whose/sit/owner.png", + "size": 11502940, + "dataset": None, + }, + { + "id": "3837", + "name": "Datafile 3837", + "path": "/attorney/set/sell.png", + "size": 155800656, + "dataset": None, + }, + { + "id": "4316", + "name": "Datafile 4316", + "path": "/nor/important/level.tiff", + "size": 163785021, + "dataset": None, + }, + { + "id": "4795", + "name": "Datafile 4795", + "path": "/someone/cultural/exist.png", + "size": 101862784, + "dataset": None, + }, + { + "id": "484", + "name": "Datafile 484", + "path": "/why/than/whom.gif", + "size": 34752969, + "dataset": None, + }, + { + "id": "5", + "name": "Datafile 5", + "path": "/throw/structure/free.gif", + "size": 11020004, + "dataset": None, + }, + { + "id": "5274", + "name": "Datafile 5274", + "path": "/find/top/check.tiff", + "size": 39704159, + "dataset": None, + }, + { + "id": "5753", + "name": "Datafile 5753", + "path": "/bit/red/early.png", + "size": 139569798, + "dataset": None, + }, + { + "id": "6232", + "name": "Datafile 6232", + "path": "/detail/oil/fact.jpg", + "size": 136355655, + "dataset": None, + }, + { + "id": "6711", + "name": "Datafile 6711", + "path": "/group/spend/us.tiff", + "size": 88860463, + "dataset": None, + }, + { + "id": "7190", + "name": "Datafile 7190", + "path": "/sea/kitchen/develop.png", + "size": 184797408, + "dataset": None, + }, + { + "id": "7669", + "name": "Datafile 7669", + "path": "/education/maybe/total.gif", + "size": 13347406, + "dataset": None, + }, + { + "id": "8148", + "name": "Datafile 8148", + "path": "/ball/shoulder/anything.bmp", + "size": 160229511, + "dataset": None, + }, + { + "id": "8627", + "name": "Datafile 8627", + "path": "/provide/company/those.jpg", + "size": 175618131, + "dataset": None, + }, + { + "id": "9106", + "name": "Datafile 9106", + "path": "/begin/keep/final.jpg", + "size": 26685691, + "dataset": None, + }, + { + "id": "9585", + "name": "Datafile 9585", + "path": "/couple/discover/paper.jpeg", + "size": 62121277, + "dataset": None, + }, + { + "id": "963", + "name": "Datafile 963", + "path": "/happen/reality/history.bmp", + "size": 54690668, + "dataset": None, + }, + ], + "parameters": [], + "samples": [], + }, + ], + id="Search datasets' files using full text search", + ), + pytest.param( + "documents", + '{"where": {"type": "INVESTIGATIONTYPE 2"}, "include": [{"relation":' + '"datasets"}, {"relation": "members", "scope": {"where": {"role": "PI"' + '}, "include": [{"relation": "person", "scope": {"where": {"fullName":' + '"Lynn White"}}}]}}]}', + [ + { + "pid": "1-202-45294-9", + "isPublic": True, + "type": "INVESTIGATIONTYPE 2", + "title": "INVESTIGATION 7", + "summary": "Voice expert inside event from. Democratic stop we" + " I interesting ask deal. Director ago education look.\nPower" + " cost able into western anything. Move get watch wide" + " billion.", + "doi": "1-202-45294-9", + "startDate": "2001-08-05T00:00:00+00:00", + "endDate": "2001-11-19T00:00:00+00:00", + "releaseDate": "2001-07-09T00:00:00+00:00", + "license": None, + "keywords": [ + "wish49", + "hair251", + "common295", + "writer373", + "him432", + "contain637", + "difference685", + "central723", + "story909", + "response1035", + "blood1880", + "bank1930", + "kid2020", + "side2236", + "town2562", + "budget2931", + "music2952", + "interview3276", + "writer3424", + "evidence3491", + "assume3699", + "possible3944", + "source4387", + "black4448", + "save4614", + "if4807", + "level5193", + "catch5337", + "safe5709", + "skin6164", + "nature6684", + "herself7054", + "glass7153", + "image7204", + "major7427", + "these7504", + "why8533", + "beautiful9000", + "whether9306", + "economy9791", + "center10077", + "stop10135", + "Mr10415", + "night10958", + "example11171", + "with11477", + "look11720", + "east11967", + "seven12086", + "blue12710", + "let13297", + "probably13446", + "case13870", + "explain14543", + "nearly14567", + "challenge14577", + "stuff14659", + "church14763", + ], + "datasets": [], + "members": [ + { + "id": "7", + "role": "PI", + "document": None, + "person": { + "id": "262", + "fullName": "Lynn White", + "orcid": "18729", + "researcherId": None, + "firstName": None, + "lastName": None, + "members": [], + }, + "affiliation": None, + }, + ], + "parameters": [], + }, + ], + id="Search documents with document condition, multiple includes" + " (nested) and conditions on those with parameters include and" + " conditions", + ), + pytest.param( + "documents", + '{"include": [{"relation": "parameters", "scope": {"where": {"and": [{' + '"name": "PARAMETERTYPE 27"}, {"value": {"between": [127260, 127270]}},' + '{"unit": "unit 27"}]}}}]}', + [ + { + "pid": "0-449-78690-0", + "isPublic": True, + "type": "INVESTIGATIONTYPE 2", + "title": "INVESTIGATION 1", + "summary": "Season identify professor happen third. Beat" + " professional blue clear style have. Light final summer.", + "doi": "0-449-78690-0", + "startDate": "2000-04-03T00:00:00+00:00", + "endDate": "2000-07-09T00:00:00+00:00", + "releaseDate": "2000-07-05T00:00:00+00:00", + "license": None, + "keywords": [ + "read123", + "boy129", + "out253", + "hour326", + "possible449", + "west566", + "scene948", + "who1253", + "capital1526", + "dream1989", + "front2347", + "inside2465", + "surface2851", + "learn2953", + "hot3053", + "just3159", + "population3261", + "cup3366", + "another3451", + "environmental3632", + "require3858", + "rock3952", + "determine4048", + "space4061", + "big4229", + "why4243", + "public4362", + "election4641", + "measure4996", + "often5014", + "develop5135", + "than5310", + "floor5312", + "check5327", + "cost5487", + "information6130", + "guy6180", + "admit6235", + "market6645", + "law6777", + "close7336", + "billion7597", + "product7964", + "American8041", + "language8246", + "school8277", + "specific8539", + "position8670", + "grow8702", + "time8899", + "weight9086", + "catch9129", + "speak9559", + "strong9621", + "development9757", + "best9786", + "identify10039", + "give10497", + "life10854", + "century11040", + "fire11580", + "leg11744", + "past11935", + "bar12034", + "do12108", + "prove12224", + "body12251", + "data12288", + "at12640", + "star12706", + "customer12795", + "small13058", + "event13141", + "now13193", + "magazine13415", + "policy13601", + "black13996", + "American14654", + ], + "datasets": [], + "members": [], + "parameters": [ + { + "id": "1", + "name": "PARAMETERTYPE 27", + "value": 127265.0, + "unit": "unit 27", + "dataset": None, + "document": None, + }, + ], + }, + ], + id="Search documents with parameters include and conditions (between" + " operator, A AND B AND C)", + ), + pytest.param( + "documents", + '{"include": [{"relation": "datasets", "scope": {"include": [{' + '"relation": "parameters", "scope": {"where": {"and": [{"name":' + ' "PARAMETERTYPE 27"}, {"value": {"between": [177670, 177680]}}, {' + '"unit": "unit 27"}]}}}]}}]}', + [ + { + "pid": "1-5304-9152-5", + "isPublic": True, + "type": "INVESTIGATIONTYPE 3", + "title": "INVESTIGATION 100", + "summary": "Suffer moment training raise. Life huge ball each." + "\nInto with box however benefit fund economy. From among" + " budget early affect kind. Item officer international.", + "doi": "1-5304-9152-5", + "startDate": "2005-02-02T00:00:00+00:00", + "endDate": "2005-05-04T00:00:00+00:00", + "releaseDate": "2025-07-10T00:00:00+00:00", + "license": None, + "keywords": [ + "operation292", + "wide299", + "nearly470", + "first668", + "discuss916", + "great1544", + "I1875", + "reflect1906", + "police1913", + "mention2133", + "like2414", + "church3031", + "those3445", + "mouth3680", + "star3875", + "you3888", + "hard3923", + "nature4654", + "evening4913", + "drive5246", + "surface5301", + "amount5533", + "agent5694", + "before5767", + "remain6346", + "behind6362", + "people6519", + "plan6634", + "sense6660", + "any7114", + "so7243", + "fire7287", + "hand7713", + "sell8272", + "long8322", + "use8593", + "thank8662", + "firm8847", + "figure8957", + "military9089", + "wide9339", + "use9596", + "air9706", + "Democrat9804", + "less9975", + "throughout10176", + "teach10205", + "role10226", + "national10628", + "individual11222", + "some11262", + "wear11489", + "certain11566", + "how11675", + "always11816", + "spring12404", + "data12761", + "high13444", + "arm13632", + "race13879", + "want14111", + "left14207", + "election14737", + "avoid14893", + ], + "datasets": [ + { + "pid": "0-236-53165-4", + "title": "DATASET 100", + "isPublic": True, + "creationDate": "2006-11-25T16:37:38+00:00", + "size": None, + "documents": [], + "techniques": [], + "instrument": None, + "files": [], + "parameters": [ + { + "id": "27", + "name": "PARAMETERTYPE 27", + "value": 177676.0, + "unit": "unit 27", + "dataset": None, + "document": None, + }, + ], + "samples": [], + }, + { + "pid": "0-9875888-6-9", + "title": "DATASET 340", + "isPublic": True, + "creationDate": "2006-09-30T10:38:17+00:00", + "size": None, + "documents": [], + "techniques": [], + "instrument": None, + "files": [], + "parameters": [], + "samples": [], + }, + ], + "members": [], + "parameters": [], + }, + ], + id="Search documents with datasets.parameters include and conditions" + " (between operator, A AND B AND C)", + ), + pytest.param( + "datasets", + '{"include": [{"relation": "datasets", "scope": {"include": [{' + '"relation": "samples", "scope": {"where": {"name": "SAMPLE 4"}}}, {' + '"relation": "techniques", "scope": {"where": {"name": "TODO"}}}]}}]}', + [ + { + "pid": "0-9634101-9-9", + "isPublic": True, + "type": "INVESTIGATIONTYPE 3", + "title": "INVESTIGATION 4", + "summary": "Fast purpose right power away health south.\n" + "Quality serve food buy responsibility go much. Situation raise" + " manage positive help daughter. Yes player reveal.", + "doi": "0-9634101-9-9", + "startDate": "2001-02-02T00:00:00+00:00", + "endDate": "2001-05-04T00:00:00+00:00", + "releaseDate": "2001-09-26T00:00:00+00:00", + "license": None, + "keywords": [ + "pressure133", + "property392", + "development707", + "field849", + "very1485", + "ready1552", + "laugh1693", + "explain1835", + "every2547", + "answer2893", + "relationship3108", + "lot3281", + "start3507", + "later3670", + "around3919", + "new4134", + "cut4496", + "seem4587", + "four5078", + "wind5584", + "year5683", + "church5824", + "toward6051", + "door6313", + "involve6542", + "message6681", + "day7103", + "in8803", + "between8933", + "lead8947", + "same8992", + "establish9806", + "lay10219", + "institution10406", + "artist10468", + "analysis10524", + "education10886", + "score10895", + "price10909", + "risk11637", + "economy12679", + "mouth12746", + "control13332", + "join13453", + "visit13664", + "middle13751", + "quickly14383", + "receive14492", + "hour14512", + "include14664", + "likely14872", + ], + "datasets": [ + { + "pid": "1-937941-39-6", + "title": "DATASET 244", + "isPublic": True, + "creationDate": "2000-10-23T03:58:02+00:00", + "size": None, + "documents": [], + "techniques": [], + "instrument": None, + "files": [], + "parameters": [], + "samples": [ + { + "name": "SAMPLE 4", + "pid": "pid:4", + "description": "I read painting decade. Down" + " free attention recognize travel.", + "datasets": [], + }, + ], + }, + { + "pid": "1-397-29815-4", + "title": "DATASET 4", + "isPublic": True, + "creationDate": "2016-06-09T06:36:38+00:00", + "size": None, + "documents": [], + "techniques": [], + "instrument": None, + "files": [], + "parameters": [], + "samples": [ + { + "name": "SAMPLE 4", + "pid": "pid:4", + "description": "I read painting decade. Down" + " free attention recognize travel.", + "datasets": [], + }, + ], + }, + ], + "members": [], + "parameters": [], + }, + ], + # Skipped because this relies on ICAT 5 mappings + # TODO - techniques WHERE filter needs finishing when we know what the + # test data will be + marks=pytest.mark.skip, + id="Search documents with multiple include and scopes (ICAT 5)", + ), ], ) def test_valid_search_endpoint(