@@ -973,6 +973,58 @@ def test_search_my_experiments(session, client, setup_router_db):
973973 assert response .json ()[0 ]["title" ] == experiment ["title" ]
974974
975975
976+ def test_search_meta_analysis_experiment (session , data_provider , client , setup_router_db , data_files ):
977+ experiment = create_experiment (client )
978+ score_set = create_seq_score_set_with_variants (
979+ client , session , data_provider , experiment ["urn" ], data_files / "scores.csv"
980+ )
981+
982+ score_set = (client .post (f"/api/v1/score-sets/{ score_set ['urn' ]} /publish" )).json ()
983+ meta_score_set = create_seq_score_set_with_variants (
984+ client ,
985+ session ,
986+ data_provider ,
987+ None ,
988+ data_files / "scores.csv" ,
989+ update = {"title" : "Test Meta Analysis" , "metaAnalyzesScoreSetUrns" : [score_set ["urn" ]]},
990+ )
991+
992+ meta_score_set = (client .post (f"/api/v1/score-sets/{ meta_score_set ['urn' ]} /publish" )).json ()
993+ score_set_refresh = (client .get (f"/api/v1/score-sets/{ score_set ['urn' ]} " )).json ()
994+ search_payload = {"metaAnalysis" : True }
995+ response = client .post ("/api/v1/me/experiments/search" , json = search_payload )
996+ assert response .status_code == 200
997+ response_data = response .json ()
998+ assert any (item ["urn" ] == meta_score_set ["experiment" ]["urn" ] for item in response_data )
999+ assert all (item ["urn" ] != score_set_refresh ["experiment" ]["urn" ] for item in response_data )
1000+
1001+
1002+ def test_search_exclude_meta_analysis_experiment (session , data_provider , client , setup_router_db , data_files ):
1003+ experiment = create_experiment (client )
1004+ score_set = create_seq_score_set_with_variants (
1005+ client , session , data_provider , experiment ["urn" ], data_files / "scores.csv"
1006+ )
1007+
1008+ score_set = (client .post (f"/api/v1/score-sets/{ score_set ['urn' ]} /publish" )).json ()
1009+ meta_score_set = create_seq_score_set_with_variants (
1010+ client ,
1011+ session ,
1012+ data_provider ,
1013+ None ,
1014+ data_files / "scores.csv" ,
1015+ update = {"title" : "Test Meta Analysis" , "metaAnalyzesScoreSetUrns" : [score_set ["urn" ]]},
1016+ )
1017+
1018+ meta_score_set = (client .post (f"/api/v1/score-sets/{ meta_score_set ['urn' ]} /publish" )).json ()
1019+ score_set_refresh = (client .get (f"/api/v1/score-sets/{ score_set ['urn' ]} " )).json ()
1020+ search_payload = {"metaAnalysis" : False }
1021+ response = client .post ("/api/v1/me/experiments/search" , json = search_payload )
1022+ assert response .status_code == 200
1023+ response_data = response .json ()
1024+ assert any (item ["urn" ] == score_set_refresh ["experiment" ]["urn" ] for item in response_data )
1025+ assert all (item ["urn" ] != meta_score_set ["experiment" ]["urn" ] for item in response_data )
1026+
1027+
9761028def test_search_score_sets_for_experiments (session , client , setup_router_db , data_files , data_provider ):
9771029 experiment = create_experiment (client )
9781030 score_set_pub = create_seq_score_set_with_variants (
0 commit comments