123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- # Copyright 2023 Avaiga Private Limited
- #
- # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
- # the License. You may obtain a copy of the License at
- #
- # http://www.apache.org/licenses/LICENSE-2.0
- #
- # Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
- # an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
- # specific language governing permissions and limitations under the License.
- from datetime import datetime
- from time import sleep
- from taipy.core._version._version_manager_factory import _VersionManagerFactory
- from taipy.core.submission._submission_manager_factory import _SubmissionManagerFactory
- from taipy.core.submission.submission import Submission
- from taipy.core.submission.submission_status import SubmissionStatus
- from taipy.core.task.task import Task
- def test_create_submission(scenario):
- submission_1 = _SubmissionManagerFactory._build_manager()._create(
- scenario.id, scenario._ID_PREFIX, scenario.config_id
- )
- assert submission_1.id is not None
- assert submission_1.entity_id == scenario.id
- assert submission_1.jobs == []
- assert isinstance(submission_1.creation_date, datetime)
- assert submission_1._submission_status == SubmissionStatus.SUBMITTED
- def test_get_submission():
- submission_manager = _SubmissionManagerFactory._build_manager()
- assert submission_manager._get("random_submission_id") is None
- submission_1 = submission_manager._create("entity_id", "ENTITY_TYPE", "entity_config_id")
- submission_2 = submission_manager._get(submission_1.id)
- assert submission_1.id == submission_2.id
- assert submission_1.entity_id == submission_2.entity_id == "entity_id"
- assert submission_1.jobs == submission_2.jobs
- assert submission_1.creation_date == submission_2.creation_date
- assert submission_1.submission_status == submission_2.submission_status
- def test_get_all_submission():
- submission_manager = _SubmissionManagerFactory._build_manager()
- version_manager = _VersionManagerFactory._build_manager()
- submission_manager._set(
- Submission("entity_id", "submission_id", "entity_config_id", version=version_manager._get_latest_version())
- )
- for version_name in ["abc", "xyz"]:
- for i in range(10):
- submission_manager._set(
- Submission("entity_id", f"submission_{version_name}_{i}", "entity_config_id", version=f"{version_name}")
- )
- assert len(submission_manager._get_all()) == 1
- version_manager._set_experiment_version("xyz")
- version_manager._set_experiment_version("abc")
- assert len(submission_manager._get_all()) == 10
- assert len(submission_manager._get_all("abc")) == 10
- assert len(submission_manager._get_all("xyz")) == 10
- def test_get_latest_submission():
- task_1 = Task("task_config_1", {}, print, id="task_id_1")
- task_2 = Task("task_config_2", {}, print, id="task_id_2")
- submission_manager = _SubmissionManagerFactory._build_manager()
- submission_1 = submission_manager._create(task_1.id, task_1._ID_PREFIX, task_1.config_id)
- assert submission_manager._get_latest(task_1) == submission_1
- assert submission_manager._get_latest(task_2) is None
- sleep(0.01) # Comparison is based on time, precision on Windows is not enough important
- submission_2 = submission_manager._create(task_2.id, task_2._ID_PREFIX, task_2.config_id)
- assert submission_manager._get_latest(task_1) == submission_1
- assert submission_manager._get_latest(task_2) == submission_2
- sleep(0.01) # Comparison is based on time, precision on Windows is not enough important
- submission_3 = submission_manager._create(task_1.id, task_1._ID_PREFIX, task_1.config_id)
- assert submission_manager._get_latest(task_1) == submission_3
- assert submission_manager._get_latest(task_2) == submission_2
- sleep(0.01) # Comparison is based on time, precision on Windows is not enough important
- submission_4 = submission_manager._create(task_2.id, task_2._ID_PREFIX, task_2.config_id)
- assert submission_manager._get_latest(task_1) == submission_3
- assert submission_manager._get_latest(task_2) == submission_4
- def test_delete_submission():
- submission_manager = _SubmissionManagerFactory._build_manager()
- submission = Submission("entity_id", "submission_id", "entity_config_id")
- submission_manager._set(submission)
- for i in range(10):
- submission_manager._set(Submission("entity_id", f"submission_{i}", "entity_config_id"))
- assert len(submission_manager._get_all()) == 11
- assert isinstance(submission_manager._get(submission.id), Submission)
- submission_manager._delete(submission.id)
- assert len(submission_manager._get_all()) == 10
- assert submission_manager._get(submission.id) is None
- submission_manager._delete_all()
- assert len(submission_manager._get_all()) == 0
|