Skip to content

Commit a5c4943

Browse files
committed
Add some meta-analysis tests.
1 parent 1114b02 commit a5c4943

File tree

1 file changed

+86
-0
lines changed

1 file changed

+86
-0
lines changed

tests/routers/test_score_set.py

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1085,6 +1085,92 @@ def test_cannot_add_score_set_to_meta_analysis_experiment(session, data_provider
10851085
assert "Score sets may not be added to a meta-analysis experiment." in response_data["detail"]
10861086

10871087

1088+
def test_create_single_score_set_meta_analysis_to_others_score_set(session, data_provider, client, setup_router_db, data_files):
1089+
experiment = create_experiment(client)
1090+
score_set = create_seq_score_set_with_variants(
1091+
client, session, data_provider, experiment["urn"], data_files / "scores.csv"
1092+
)
1093+
1094+
score_set = (client.post(f"/api/v1/score-sets/{score_set['urn']}/publish")).json()
1095+
change_ownership(session, score_set["urn"], ScoreSetDbModel)
1096+
meta_score_set = create_seq_score_set_with_variants(
1097+
client,
1098+
session,
1099+
data_provider,
1100+
None,
1101+
data_files / "scores.csv",
1102+
update={"title": "Test Meta Analysis", "metaAnalyzesScoreSetUrns": [score_set["urn"]]},
1103+
)
1104+
1105+
score_set_refresh = (client.get(f"/api/v1/score-sets/{score_set['urn']}")).json()
1106+
assert meta_score_set["metaAnalyzesScoreSetUrns"] == [score_set["urn"]]
1107+
assert score_set_refresh["metaAnalyzedByScoreSetUrns"] == [meta_score_set["urn"]]
1108+
assert isinstance(MAVEDB_TMP_URN_RE.fullmatch(meta_score_set["urn"]), re.Match)
1109+
1110+
1111+
def test_multiple_score_set_meta_analysis_single_experiment_with_different_creator(
1112+
session, data_provider, client, setup_router_db, data_files
1113+
):
1114+
experiment = create_experiment(client)
1115+
score_set_1 = create_seq_score_set_with_variants(
1116+
client, session, data_provider, experiment["urn"], data_files / "scores.csv", update={"title": "Score Set 1"}
1117+
)
1118+
score_set_2 = create_seq_score_set_with_variants(
1119+
client, session, data_provider, experiment["urn"], data_files / "scores.csv", update={"title": "Score Set 2"}
1120+
)
1121+
1122+
score_set_1 = (client.post(f"/api/v1/score-sets/{score_set_1['urn']}/publish")).json()
1123+
score_set_2 = (client.post(f"/api/v1/score-sets/{score_set_2['urn']}/publish")).json()
1124+
1125+
change_ownership(session, score_set_2["urn"], ScoreSetDbModel)
1126+
meta_score_set = create_seq_score_set_with_variants(
1127+
client,
1128+
session,
1129+
data_provider,
1130+
None,
1131+
data_files / "scores.csv",
1132+
update={"title": "Test Meta Analysis", "metaAnalyzesScoreSetUrns": [score_set_1["urn"], score_set_2["urn"]]},
1133+
)
1134+
score_set_1_refresh = (client.get(f"/api/v1/score-sets/{score_set_1['urn']}")).json()
1135+
assert meta_score_set["metaAnalyzesScoreSetUrns"] == sorted([score_set_1["urn"], score_set_2["urn"]])
1136+
assert score_set_1_refresh["metaAnalyzedByScoreSetUrns"] == [meta_score_set["urn"]]
1137+
1138+
meta_score_set = (client.post(f"/api/v1/score-sets/{meta_score_set['urn']}/publish")).json()
1139+
assert meta_score_set["urn"] == "urn:mavedb:00000001-0-1"
1140+
1141+
1142+
def test_multiple_score_set_meta_analysis_multiple_experiment_sets_with_different_creator(
1143+
session, data_provider, client, setup_router_db, data_files
1144+
):
1145+
experiment_1 = create_experiment(client, {"title": "Experiment 1"})
1146+
experiment_2 = create_experiment(client, {"title": "Experiment 2"})
1147+
score_set_1 = create_seq_score_set_with_variants(
1148+
client, session, data_provider, experiment_1["urn"], data_files / "scores.csv", update={"title": "Score Set 1"}
1149+
)
1150+
score_set_2 = create_seq_score_set_with_variants(
1151+
client, session, data_provider, experiment_2["urn"], data_files / "scores.csv", update={"title": "Score Set 2"}
1152+
)
1153+
1154+
score_set_1 = (client.post(f"/api/v1/score-sets/{score_set_1['urn']}/publish")).json()
1155+
score_set_2 = (client.post(f"/api/v1/score-sets/{score_set_2['urn']}/publish")).json()
1156+
1157+
change_ownership(session, score_set_2["urn"], ScoreSetDbModel)
1158+
meta_score_set = create_seq_score_set_with_variants(
1159+
client,
1160+
session,
1161+
data_provider,
1162+
None,
1163+
data_files / "scores.csv",
1164+
update={"title": "Test Meta Analysis", "metaAnalyzesScoreSetUrns": [score_set_1["urn"], score_set_2["urn"]]},
1165+
)
1166+
score_set_1_refresh = (client.get(f"/api/v1/score-sets/{score_set_1['urn']}")).json()
1167+
assert meta_score_set["metaAnalyzesScoreSetUrns"] == sorted([score_set_1["urn"], score_set_2["urn"]])
1168+
assert score_set_1_refresh["metaAnalyzedByScoreSetUrns"] == [meta_score_set["urn"]]
1169+
1170+
meta_score_set = (client.post(f"/api/v1/score-sets/{meta_score_set['urn']}/publish")).json()
1171+
assert meta_score_set["urn"] == "urn:mavedb:00000003-0-1"
1172+
1173+
10881174
def test_search_score_sets_no_match(session, data_provider, client, setup_router_db, data_files):
10891175
experiment_1 = create_experiment(client, {"title": "Experiment 1"})
10901176
create_seq_score_set_with_variants(

0 commit comments

Comments
 (0)