From 86bf4eaba279d89d236bc389e0358a52e9d9be5b Mon Sep 17 00:00:00 2001
From: PGijsbers
Date: Fri, 16 Jun 2023 20:22:04 +0300
Subject: [PATCH] Make test robuster to server state, avoid attaching attached
runs
It is not allowed to attach a run to a study which is already
associated with the study. This leads to a misleading error:
`1045: Problem attaching entities. Please ensure to only attach entities that exist - None`
---
tests/test_study/test_study_functions.py | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/tests/test_study/test_study_functions.py b/tests/test_study/test_study_functions.py
index 333c12d7c..bfbbbee49 100644
--- a/tests/test_study/test_study_functions.py
+++ b/tests/test_study/test_study_functions.py
@@ -187,18 +187,19 @@ def test_publish_study(self):
)
self.assertSetEqual(set(run_ids), set(study_downloaded.runs))
- # attach more runs
- run_list_additional = openml.runs.list_runs(size=10, offset=10)
- openml.study.attach_to_study(study.id, list(run_list_additional.keys()))
+ # attach more runs, since we fetch 11 here, at least one is non-overlapping
+ run_list_additional = openml.runs.list_runs(size=11, offset=10)
+ run_list_additional = set(run_list_additional) - set(run_ids)
+ openml.study.attach_to_study(study.id, list(run_list_additional))
study_downloaded = openml.study.get_study(study.id)
# verify again
- all_run_ids = set(run_list_additional.keys()) | set(run_list.keys())
+ all_run_ids = run_list_additional | set(run_list.keys())
self.assertSetEqual(set(study_downloaded.runs), all_run_ids)
# test detach function
openml.study.detach_from_study(study.id, list(run_list.keys()))
study_downloaded = openml.study.get_study(study.id)
- self.assertSetEqual(set(study_downloaded.runs), set(run_list_additional.keys()))
+ self.assertSetEqual(set(study_downloaded.runs), run_list_additional)
# test status update function
openml.study.update_study_status(study.id, "deactivated")