Jelajahi Sumber

rename functions, moved tests

Toan Quach 1 tahun lalu
induk
melakukan
5e5586ac2c

+ 5 - 5
taipy/core/_entity/_ready_to_run_property.py

@@ -49,7 +49,7 @@ class _ReadyToRunProperty:
         )
         )
 
 
     @classmethod
     @classmethod
-    def __add_unsubmittable_reason(
+    def __add(
         cls, submittable_id: Union["ScenarioId", "SequenceId", "TaskId"], datanode_id: "DataNodeId", reason: str
         cls, submittable_id: Union["ScenarioId", "SequenceId", "TaskId"], datanode_id: "DataNodeId", reason: str
     ) -> None:
     ) -> None:
         cls._datanode_id_submittables[datanode_id].add(submittable_id)
         cls._datanode_id_submittables[datanode_id].add(submittable_id)
@@ -78,7 +78,7 @@ class _ReadyToRunProperty:
             cls._datanode_id_submittables.pop(datanode_id)
             cls._datanode_id_submittables.pop(datanode_id)
 
 
     @classmethod
     @classmethod
-    def _add_parent_entities_to_submittable_cache(cls, dn: "DataNode", reason: str) -> None:
+    def _add(cls, dn: "DataNode", reason: str) -> None:
         from ..scenario.scenario import Scenario
         from ..scenario.scenario import Scenario
         from ..sequence.sequence import Sequence
         from ..sequence.sequence import Sequence
         from ..task.task import Task
         from ..task.task import Task
@@ -86,8 +86,8 @@ class _ReadyToRunProperty:
         parent_entities = dn.get_parents()
         parent_entities = dn.get_parents()
 
 
         for scenario_parent in parent_entities.get(Scenario._MANAGER_NAME, []):
         for scenario_parent in parent_entities.get(Scenario._MANAGER_NAME, []):
-            _ReadyToRunProperty.__add_unsubmittable_reason(scenario_parent.id, dn.id, reason)
+            _ReadyToRunProperty.__add(scenario_parent.id, dn.id, reason)
         for sequence_parent in parent_entities.get(Sequence._MANAGER_NAME, []):
         for sequence_parent in parent_entities.get(Sequence._MANAGER_NAME, []):
-            _ReadyToRunProperty.__add_unsubmittable_reason(sequence_parent.id, dn.id, reason)
+            _ReadyToRunProperty.__add(sequence_parent.id, dn.id, reason)
         for task_parent in parent_entities.get(Task._MANAGER_NAME, []):
         for task_parent in parent_entities.get(Task._MANAGER_NAME, []):
-            _ReadyToRunProperty.__add_unsubmittable_reason(task_parent.id, dn.id, reason)
+            _ReadyToRunProperty.__add(task_parent.id, dn.id, reason)

+ 2 - 2
taipy/core/data/data_node.py

@@ -43,11 +43,11 @@ def _update_ready_for_reading(fct):
     def _recompute_is_ready_for_reading(dn: "DataNode", *args, **kwargs):
     def _recompute_is_ready_for_reading(dn: "DataNode", *args, **kwargs):
         fct(dn, *args, **kwargs)
         fct(dn, *args, **kwargs)
         if dn._edit_in_progress:
         if dn._edit_in_progress:
-            _ReadyToRunProperty._add_parent_entities_to_submittable_cache(dn, f"DataNode {dn.id} is being edited")
+            _ReadyToRunProperty._add(dn, f"DataNode {dn.id} is being edited")
         else:
         else:
             _ReadyToRunProperty._remove(dn.id, f"DataNode {dn.id} is being edited")
             _ReadyToRunProperty._remove(dn.id, f"DataNode {dn.id} is being edited")
         if not dn._last_edit_date:
         if not dn._last_edit_date:
-            _ReadyToRunProperty._add_parent_entities_to_submittable_cache(dn, f"DataNode {dn.id} is not written")
+            _ReadyToRunProperty._add(dn, f"DataNode {dn.id} is not written")
         else:
         else:
             _ReadyToRunProperty._remove(dn.id, f"DataNode {dn.id} is not written")
             _ReadyToRunProperty._remove(dn.id, f"DataNode {dn.id} is not written")
 
 

+ 317 - 0
tests/core/_entity/test_ready_to_run_property.py

@@ -0,0 +1,317 @@
+# Copyright 2021-2024 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 taipy.config.common.frequency import Frequency
+from taipy.config.common.scope import Scope
+from taipy.config.config import Config
+from taipy.core._entity._ready_to_run_property import _ReadyToRunProperty
+from taipy.core.data._data_manager_factory import _DataManagerFactory
+from taipy.core.data.pickle import PickleDataNode
+from taipy.core.scenario._scenario_manager_factory import _ScenarioManagerFactory
+from taipy.core.scenario.scenario import Scenario
+from taipy.core.sequence._sequence_manager_factory import _SequenceManagerFactory
+from taipy.core.task._task_manager_factory import _TaskManagerFactory
+from taipy.core.task.task import Task
+
+
+def test_scenario_is_ready_to_run_property():
+    scenario_manager = _ScenarioManagerFactory._build_manager()
+    assert len(scenario_manager._get_all()) == 0
+
+    dn_config_1 = Config.configure_in_memory_data_node("dn_1", 10)
+    dn_config_2 = Config.configure_in_memory_data_node("dn_2", 10)
+    task_config = Config.configure_task("task", print, [dn_config_1, dn_config_2])
+    scenario_config = Config.configure_scenario("sc", {task_config}, set(), Frequency.DAILY)
+    scenario = scenario_manager._create(scenario_config)
+    dn_1 = scenario.dn_1
+    dn_2 = scenario.dn_2
+
+    assert len(scenario_manager._get_all()) == 1
+    assert scenario.id not in _ReadyToRunProperty._submittable_id_datanodes
+    assert scenario_manager._is_submittable(scenario)
+    assert scenario_manager._is_submittable(scenario.id)
+    assert not scenario_manager._is_submittable("Scenario_temp")
+
+    dn_1.edit_in_progress = True
+    assert scenario.id in _ReadyToRunProperty._submittable_id_datanodes
+    assert dn_1.id in _ReadyToRunProperty._submittable_id_datanodes[scenario.id]
+    assert dn_1.id in _ReadyToRunProperty._datanode_id_submittables
+    assert scenario.id in _ReadyToRunProperty._datanode_id_submittables[dn_1.id]
+    assert _ReadyToRunProperty._submittable_id_datanodes[scenario.id][dn_1.id] == {
+        f"DataNode {dn_1.id} is being edited"
+    }
+    assert not scenario_manager._is_submittable(scenario)
+    assert not scenario_manager._is_submittable(scenario.id)
+
+    dn_1.edit_in_progress = False
+    assert scenario.id not in _ReadyToRunProperty._submittable_id_datanodes
+    assert dn_1.id not in _ReadyToRunProperty._datanode_id_submittables
+    assert scenario_manager._is_submittable(scenario)
+    assert scenario_manager._is_submittable(scenario.id)
+
+    dn_1.last_edit_date = None
+    dn_2.edit_in_progress = True
+    assert scenario.id in _ReadyToRunProperty._submittable_id_datanodes
+    assert dn_1.id in _ReadyToRunProperty._submittable_id_datanodes[scenario.id]
+    assert dn_2.id in _ReadyToRunProperty._submittable_id_datanodes[scenario.id]
+    assert dn_1.id in _ReadyToRunProperty._datanode_id_submittables
+    assert scenario.id in _ReadyToRunProperty._datanode_id_submittables[dn_1.id]
+    assert dn_2.id in _ReadyToRunProperty._datanode_id_submittables
+    assert scenario.id in _ReadyToRunProperty._datanode_id_submittables[dn_2.id]
+    assert _ReadyToRunProperty._submittable_id_datanodes[scenario.id][dn_1.id] == {f"DataNode {dn_1.id} is not written"}
+    assert _ReadyToRunProperty._submittable_id_datanodes[scenario.id][dn_2.id] == {
+        f"DataNode {dn_2.id} is being edited"
+    }
+    assert not scenario_manager._is_submittable(scenario)
+    assert not scenario_manager._is_submittable(scenario.id)
+
+    dn_1.last_edit_date = datetime.now()
+    assert scenario.id in _ReadyToRunProperty._submittable_id_datanodes
+    assert dn_1.id not in _ReadyToRunProperty._submittable_id_datanodes[scenario.id]
+    assert dn_2.id in _ReadyToRunProperty._submittable_id_datanodes[scenario.id]
+    assert dn_1.id not in _ReadyToRunProperty._datanode_id_submittables
+    assert dn_2.id in _ReadyToRunProperty._datanode_id_submittables
+    assert scenario.id in _ReadyToRunProperty._datanode_id_submittables[dn_2.id]
+    assert _ReadyToRunProperty._submittable_id_datanodes[scenario.id][dn_2.id] == {
+        f"DataNode {dn_2.id} is being edited"
+    }
+    assert not scenario_manager._is_submittable(scenario)
+    assert not scenario_manager._is_submittable(scenario.id)
+
+    dn_2.edit_in_progress = False
+    assert dn_1.id not in _ReadyToRunProperty._datanode_id_submittables
+    assert dn_2.id not in _ReadyToRunProperty._datanode_id_submittables
+    assert scenario.id not in _ReadyToRunProperty._submittable_id_datanodes
+    assert scenario_manager._is_submittable(scenario)
+    assert scenario_manager._is_submittable(scenario.id)
+
+
+def test_sequence_is_ready_to_run_property():
+    data_manager = _DataManagerFactory._build_manager()
+    scenario_manager = _ScenarioManagerFactory._build_manager()
+    task_manager = _TaskManagerFactory._build_manager()
+    sequence_manager = _SequenceManagerFactory._build_manager()
+
+    task_id = "TASK_task_id"
+    scenario_id = "SCENARIO_scenario_id"
+    dn_1 = PickleDataNode("dn_1", Scope.SCENARIO, parent_ids={task_id, scenario_id}, properties={"default_data": 10})
+    dn_2 = PickleDataNode("dn_2", Scope.SCENARIO, parent_ids={task_id, scenario_id}, properties={"default_data": 10})
+    task = Task("task", {}, print, [dn_1, dn_2], id=task_id, parent_ids={scenario_id})
+    scenario = Scenario("scenario", {task}, {}, set(), scenario_id=scenario_id)
+    data_manager._set(dn_1)
+    data_manager._set(dn_2)
+    task_manager._set(task)
+    scenario_manager._set(scenario)
+
+    dn_1 = scenario.dn_1
+    dn_2 = scenario.dn_2
+
+    scenario.add_sequences({"sequence": [task]})
+    sequence = scenario.sequences["sequence"]
+    assert len(sequence_manager._get_all()) == 1
+    assert sequence.id not in _ReadyToRunProperty._submittable_id_datanodes
+    assert scenario.id not in _ReadyToRunProperty._submittable_id_datanodes
+    assert sequence_manager._is_submittable(sequence)
+    assert sequence_manager._is_submittable(sequence.id)
+    assert scenario_manager._is_submittable(scenario)
+    assert not sequence_manager._is_submittable("Sequence_temp")
+    assert not sequence_manager._is_submittable("SEQUENCE_temp_SCENARIO_scenario")
+
+    dn_1.edit_in_progress = True
+    assert scenario.id in _ReadyToRunProperty._submittable_id_datanodes
+    assert sequence.id in _ReadyToRunProperty._submittable_id_datanodes
+    assert dn_1.id in _ReadyToRunProperty._submittable_id_datanodes[scenario.id]
+    assert dn_1.id in _ReadyToRunProperty._submittable_id_datanodes[sequence.id]
+    assert dn_1.id in _ReadyToRunProperty._datanode_id_submittables
+    assert scenario.id in _ReadyToRunProperty._datanode_id_submittables[dn_1.id]
+    assert sequence.id in _ReadyToRunProperty._datanode_id_submittables[dn_1.id]
+    assert _ReadyToRunProperty._submittable_id_datanodes[scenario.id][dn_1.id] == {
+        f"DataNode {dn_1.id} is being edited"
+    }
+    assert _ReadyToRunProperty._submittable_id_datanodes[sequence.id][dn_1.id] == {
+        f"DataNode {dn_1.id} is being edited"
+    }
+    assert not scenario_manager._is_submittable(scenario)
+    assert not sequence_manager._is_submittable(sequence)
+    assert not sequence_manager._is_submittable(sequence.id)
+
+    dn_1.edit_in_progress = False
+    assert scenario.id not in _ReadyToRunProperty._submittable_id_datanodes
+    assert sequence.id not in _ReadyToRunProperty._submittable_id_datanodes
+    assert dn_1.id not in _ReadyToRunProperty._datanode_id_submittables
+    assert sequence_manager._is_submittable(sequence)
+    assert sequence_manager._is_submittable(sequence.id)
+    assert scenario_manager._is_submittable(scenario)
+
+    dn_1.last_edit_date = None
+    dn_2.edit_in_progress = True
+    assert scenario.id in _ReadyToRunProperty._submittable_id_datanodes
+    assert sequence.id in _ReadyToRunProperty._submittable_id_datanodes
+    assert dn_1.id in _ReadyToRunProperty._submittable_id_datanodes[scenario.id]
+    assert dn_1.id in _ReadyToRunProperty._submittable_id_datanodes[sequence.id]
+    assert dn_2.id in _ReadyToRunProperty._submittable_id_datanodes[scenario.id]
+    assert dn_2.id in _ReadyToRunProperty._submittable_id_datanodes[sequence.id]
+    assert dn_1.id in _ReadyToRunProperty._datanode_id_submittables
+    assert scenario.id in _ReadyToRunProperty._datanode_id_submittables[dn_1.id]
+    assert sequence.id in _ReadyToRunProperty._datanode_id_submittables[dn_1.id]
+    assert dn_2.id in _ReadyToRunProperty._datanode_id_submittables
+    assert scenario.id in _ReadyToRunProperty._datanode_id_submittables[dn_2.id]
+    assert sequence.id in _ReadyToRunProperty._datanode_id_submittables[dn_2.id]
+    assert _ReadyToRunProperty._submittable_id_datanodes[scenario.id][dn_1.id] == {f"DataNode {dn_1.id} is not written"}
+    assert _ReadyToRunProperty._submittable_id_datanodes[sequence.id][dn_1.id] == {f"DataNode {dn_1.id} is not written"}
+    assert _ReadyToRunProperty._submittable_id_datanodes[scenario.id][dn_2.id] == {
+        f"DataNode {dn_2.id} is being edited"
+    }
+    assert _ReadyToRunProperty._submittable_id_datanodes[sequence.id][dn_2.id] == {
+        f"DataNode {dn_2.id} is being edited"
+    }
+    assert not scenario_manager._is_submittable(scenario)
+    assert not sequence_manager._is_submittable(sequence)
+    assert not sequence_manager._is_submittable(sequence.id)
+
+    dn_1.last_edit_date = datetime.now()
+    assert scenario.id in _ReadyToRunProperty._submittable_id_datanodes
+    assert sequence.id in _ReadyToRunProperty._submittable_id_datanodes
+    assert dn_1.id not in _ReadyToRunProperty._submittable_id_datanodes[scenario.id]
+    assert dn_1.id not in _ReadyToRunProperty._submittable_id_datanodes[sequence.id]
+    assert dn_2.id in _ReadyToRunProperty._submittable_id_datanodes[scenario.id]
+    assert dn_2.id in _ReadyToRunProperty._submittable_id_datanodes[sequence.id]
+    assert dn_1.id not in _ReadyToRunProperty._datanode_id_submittables
+    assert dn_2.id in _ReadyToRunProperty._datanode_id_submittables
+    assert scenario.id in _ReadyToRunProperty._datanode_id_submittables[dn_2.id]
+    assert sequence.id in _ReadyToRunProperty._datanode_id_submittables[dn_2.id]
+    assert _ReadyToRunProperty._submittable_id_datanodes[scenario.id][dn_2.id] == {
+        f"DataNode {dn_2.id} is being edited"
+    }
+    assert _ReadyToRunProperty._submittable_id_datanodes[sequence.id][dn_2.id] == {
+        f"DataNode {dn_2.id} is being edited"
+    }
+    assert not scenario_manager._is_submittable(scenario)
+    assert not sequence_manager._is_submittable(sequence)
+    assert not sequence_manager._is_submittable(sequence.id)
+
+    dn_2.edit_in_progress = False
+    assert scenario.id not in _ReadyToRunProperty._submittable_id_datanodes
+    assert sequence.id not in _ReadyToRunProperty._submittable_id_datanodes
+    assert dn_2.id not in _ReadyToRunProperty._submittable_id_datanodes[scenario.id]
+    assert dn_2.id not in _ReadyToRunProperty._submittable_id_datanodes[sequence.id]
+    assert dn_2.id not in _ReadyToRunProperty._datanode_id_submittables
+    assert scenario_manager._is_submittable(scenario)
+    assert sequence_manager._is_submittable(sequence)
+    assert sequence_manager._is_submittable(sequence.id)
+
+
+def test_task_is_ready_to_run_property():
+    task_manager = _TaskManagerFactory._build_manager()
+    scenario_manager = _ScenarioManagerFactory._build_manager()
+
+    assert len(task_manager._get_all()) == 0
+
+    dn_config_1 = Config.configure_pickle_data_node("dn_1", default_data=10)
+    dn_config_2 = Config.configure_pickle_data_node("dn_2", default_data=15)
+    task_config = Config.configure_task("task", print, [dn_config_1, dn_config_2])
+    scenario_config = Config.configure_scenario("scenario", [task_config])
+
+    scenario = scenario_manager._create(scenario_config)
+    task = scenario.tasks["task"]
+    dn_1 = scenario.dn_1
+    dn_2 = scenario.dn_2
+
+    assert len(task_manager._get_all()) == 1
+    assert len(scenario_manager._get_all()) == 1
+
+    assert scenario.id not in _ReadyToRunProperty._submittable_id_datanodes
+    assert task.id not in _ReadyToRunProperty._submittable_id_datanodes
+    assert task_manager._is_submittable(task)
+    assert task_manager._is_submittable(task.id)
+    assert scenario_manager._is_submittable(scenario)
+    assert scenario_manager._is_submittable(scenario.id)
+    assert not task_manager._is_submittable("Task_temp")
+
+    dn_1.edit_in_progress = True
+    assert scenario.id in _ReadyToRunProperty._submittable_id_datanodes
+    assert task.id in _ReadyToRunProperty._submittable_id_datanodes
+    assert dn_1.id in _ReadyToRunProperty._submittable_id_datanodes[scenario.id]
+    assert dn_1.id in _ReadyToRunProperty._submittable_id_datanodes[task.id]
+    assert dn_1.id in _ReadyToRunProperty._datanode_id_submittables
+    assert scenario.id in _ReadyToRunProperty._datanode_id_submittables[dn_1.id]
+    assert task.id in _ReadyToRunProperty._datanode_id_submittables[dn_1.id]
+    assert _ReadyToRunProperty._submittable_id_datanodes[scenario.id][dn_1.id] == {
+        f"DataNode {dn_1.id} is being edited"
+    }
+    assert _ReadyToRunProperty._submittable_id_datanodes[task.id][dn_1.id] == {f"DataNode {dn_1.id} is being edited"}
+    assert not scenario_manager._is_submittable(scenario)
+    assert not task_manager._is_submittable(task)
+    assert not task_manager._is_submittable(task.id)
+
+    dn_1.edit_in_progress = False
+    assert scenario.id not in _ReadyToRunProperty._submittable_id_datanodes
+    assert task.id not in _ReadyToRunProperty._submittable_id_datanodes
+    assert dn_1.id not in _ReadyToRunProperty._datanode_id_submittables
+    assert scenario_manager._is_submittable(scenario)
+    assert task_manager._is_submittable(task)
+    assert task_manager._is_submittable(task.id)
+
+    dn_1.last_edit_date = None
+    dn_2.edit_in_progress = True
+    assert scenario.id in _ReadyToRunProperty._submittable_id_datanodes
+    assert task.id in _ReadyToRunProperty._submittable_id_datanodes
+    assert dn_1.id in _ReadyToRunProperty._submittable_id_datanodes[scenario.id]
+    assert dn_1.id in _ReadyToRunProperty._submittable_id_datanodes[task.id]
+    assert dn_2.id in _ReadyToRunProperty._submittable_id_datanodes[scenario.id]
+    assert dn_2.id in _ReadyToRunProperty._submittable_id_datanodes[task.id]
+    assert dn_1.id in _ReadyToRunProperty._datanode_id_submittables
+    assert scenario.id in _ReadyToRunProperty._datanode_id_submittables[dn_1.id]
+    assert task.id in _ReadyToRunProperty._datanode_id_submittables[dn_1.id]
+    assert dn_2.id in _ReadyToRunProperty._datanode_id_submittables
+    assert scenario.id in _ReadyToRunProperty._datanode_id_submittables[dn_2.id]
+    assert task.id in _ReadyToRunProperty._datanode_id_submittables[dn_2.id]
+    assert _ReadyToRunProperty._submittable_id_datanodes[scenario.id][dn_1.id] == {f"DataNode {dn_1.id} is not written"}
+    assert _ReadyToRunProperty._submittable_id_datanodes[task.id][dn_1.id] == {f"DataNode {dn_1.id} is not written"}
+    assert _ReadyToRunProperty._submittable_id_datanodes[scenario.id][dn_2.id] == {
+        f"DataNode {dn_2.id} is being edited"
+    }
+    assert _ReadyToRunProperty._submittable_id_datanodes[task.id][dn_2.id] == {f"DataNode {dn_2.id} is being edited"}
+    assert not scenario_manager._is_submittable(scenario)
+    assert not task_manager._is_submittable(task)
+    assert not task_manager._is_submittable(task.id)
+
+    dn_1.last_edit_date = datetime.now()
+    assert scenario.id in _ReadyToRunProperty._submittable_id_datanodes
+    assert task.id in _ReadyToRunProperty._submittable_id_datanodes
+    assert dn_1.id not in _ReadyToRunProperty._submittable_id_datanodes[scenario.id]
+    assert dn_1.id not in _ReadyToRunProperty._submittable_id_datanodes[task.id]
+    assert dn_2.id in _ReadyToRunProperty._submittable_id_datanodes[scenario.id]
+    assert dn_2.id in _ReadyToRunProperty._submittable_id_datanodes[task.id]
+    assert dn_1.id not in _ReadyToRunProperty._datanode_id_submittables
+    assert dn_2.id in _ReadyToRunProperty._datanode_id_submittables
+    assert scenario.id in _ReadyToRunProperty._datanode_id_submittables[dn_2.id]
+    assert task.id in _ReadyToRunProperty._datanode_id_submittables[dn_2.id]
+    assert _ReadyToRunProperty._submittable_id_datanodes[scenario.id][dn_2.id] == {
+        f"DataNode {dn_2.id} is being edited"
+    }
+    assert _ReadyToRunProperty._submittable_id_datanodes[task.id][dn_2.id] == {f"DataNode {dn_2.id} is being edited"}
+    assert not scenario_manager._is_submittable(scenario)
+    assert not task_manager._is_submittable(task)
+    assert not task_manager._is_submittable(task.id)
+
+    dn_2.edit_in_progress = False
+    assert scenario.id not in _ReadyToRunProperty._submittable_id_datanodes
+    assert task.id not in _ReadyToRunProperty._submittable_id_datanodes
+    assert dn_2.id not in _ReadyToRunProperty._submittable_id_datanodes[scenario.id]
+    assert dn_2.id not in _ReadyToRunProperty._submittable_id_datanodes[task.id]
+    assert dn_2.id not in _ReadyToRunProperty._datanode_id_submittables
+    assert scenario_manager._is_submittable(scenario)
+    assert task_manager._is_submittable(task)
+    assert task_manager._is_submittable(task.id)

+ 0 - 72
tests/core/scenario/test_scenario_manager.py

@@ -19,7 +19,6 @@ from taipy.config.common.frequency import Frequency
 from taipy.config.common.scope import Scope
 from taipy.config.common.scope import Scope
 from taipy.config.config import Config
 from taipy.config.config import Config
 from taipy.core import Job
 from taipy.core import Job
-from taipy.core._entity._ready_to_run_property import _ReadyToRunProperty
 from taipy.core._orchestrator._orchestrator import _Orchestrator
 from taipy.core._orchestrator._orchestrator import _Orchestrator
 from taipy.core._version._version_manager import _VersionManager
 from taipy.core._version._version_manager import _VersionManager
 from taipy.core.common import _utils
 from taipy.core.common import _utils
@@ -946,77 +945,6 @@ def test_hard_delete_shared_entities():
     assert len(_JobManager._get_all()) == 6
     assert len(_JobManager._get_all()) == 6
 
 
 
 
-def test_is_submittable():
-    assert len(_ScenarioManager._get_all()) == 0
-
-    dn_config_1 = Config.configure_in_memory_data_node("dn_1", 10)
-    dn_config_2 = Config.configure_in_memory_data_node("dn_2", 10)
-    task_config = Config.configure_task("task", print, [dn_config_1, dn_config_2])
-    scenario_config = Config.configure_scenario("sc", {task_config}, set(), Frequency.DAILY)
-    scenario = _ScenarioManager._create(scenario_config)
-    dn_1 = scenario.dn_1
-    dn_2 = scenario.dn_2
-
-    assert len(_ScenarioManager._get_all()) == 1
-    assert scenario.id not in _ReadyToRunProperty._submittable_id_datanodes
-    assert _ScenarioManager._is_submittable(scenario)
-    assert _ScenarioManager._is_submittable(scenario.id)
-    assert not _ScenarioManager._is_submittable("Scenario_temp")
-
-    dn_1.edit_in_progress = True
-    assert scenario.id in _ReadyToRunProperty._submittable_id_datanodes
-    assert dn_1.id in _ReadyToRunProperty._submittable_id_datanodes[scenario.id]
-    assert dn_1.id in _ReadyToRunProperty._datanode_id_submittables
-    assert scenario.id in _ReadyToRunProperty._datanode_id_submittables[dn_1.id]
-    assert _ReadyToRunProperty._submittable_id_datanodes[scenario.id][dn_1.id] == {
-        f"DataNode {dn_1.id} is being edited"
-    }
-    assert not _ScenarioManager._is_submittable(scenario)
-    assert not _ScenarioManager._is_submittable(scenario.id)
-
-    dn_1.edit_in_progress = False
-    assert scenario.id not in _ReadyToRunProperty._submittable_id_datanodes
-    assert dn_1.id not in _ReadyToRunProperty._datanode_id_submittables
-    assert _ScenarioManager._is_submittable(scenario)
-    assert _ScenarioManager._is_submittable(scenario.id)
-
-    dn_1.last_edit_date = None
-    dn_2.edit_in_progress = True
-    assert scenario.id in _ReadyToRunProperty._submittable_id_datanodes
-    assert dn_1.id in _ReadyToRunProperty._submittable_id_datanodes[scenario.id]
-    assert dn_2.id in _ReadyToRunProperty._submittable_id_datanodes[scenario.id]
-    assert dn_1.id in _ReadyToRunProperty._datanode_id_submittables
-    assert scenario.id in _ReadyToRunProperty._datanode_id_submittables[dn_1.id]
-    assert dn_2.id in _ReadyToRunProperty._datanode_id_submittables
-    assert scenario.id in _ReadyToRunProperty._datanode_id_submittables[dn_2.id]
-    assert _ReadyToRunProperty._submittable_id_datanodes[scenario.id][dn_1.id] == {f"DataNode {dn_1.id} is not written"}
-    assert _ReadyToRunProperty._submittable_id_datanodes[scenario.id][dn_2.id] == {
-        f"DataNode {dn_2.id} is being edited"
-    }
-    assert not _ScenarioManager._is_submittable(scenario)
-    assert not _ScenarioManager._is_submittable(scenario.id)
-
-    dn_1.last_edit_date = datetime.now()
-    assert scenario.id in _ReadyToRunProperty._submittable_id_datanodes
-    assert dn_1.id not in _ReadyToRunProperty._submittable_id_datanodes[scenario.id]
-    assert dn_2.id in _ReadyToRunProperty._submittable_id_datanodes[scenario.id]
-    assert dn_1.id not in _ReadyToRunProperty._datanode_id_submittables
-    assert dn_2.id in _ReadyToRunProperty._datanode_id_submittables
-    assert scenario.id in _ReadyToRunProperty._datanode_id_submittables[dn_2.id]
-    assert _ReadyToRunProperty._submittable_id_datanodes[scenario.id][dn_2.id] == {
-        f"DataNode {dn_2.id} is being edited"
-    }
-    assert not _ScenarioManager._is_submittable(scenario)
-    assert not _ScenarioManager._is_submittable(scenario.id)
-
-    dn_2.edit_in_progress = False
-    assert dn_1.id not in _ReadyToRunProperty._datanode_id_submittables
-    assert dn_2.id not in _ReadyToRunProperty._datanode_id_submittables
-    assert scenario.id not in _ReadyToRunProperty._submittable_id_datanodes
-    assert _ScenarioManager._is_submittable(scenario)
-    assert _ScenarioManager._is_submittable(scenario.id)
-
-
 def test_submit():
 def test_submit():
     data_node_1 = InMemoryDataNode("foo", Scope.SCENARIO, "s1")
     data_node_1 = InMemoryDataNode("foo", Scope.SCENARIO, "s1")
     data_node_2 = InMemoryDataNode("bar", Scope.SCENARIO, "s2")
     data_node_2 = InMemoryDataNode("bar", Scope.SCENARIO, "s2")

+ 0 - 113
tests/core/sequence/test_sequence_manager.py

@@ -10,7 +10,6 @@
 # specific language governing permissions and limitations under the License.
 # specific language governing permissions and limitations under the License.
 
 
 import json
 import json
-from datetime import datetime
 from pathlib import Path
 from pathlib import Path
 from typing import Callable, Iterable, Optional
 from typing import Callable, Iterable, Optional
 from unittest import mock
 from unittest import mock
@@ -20,14 +19,12 @@ import pytest
 
 
 from taipy.config.common.scope import Scope
 from taipy.config.common.scope import Scope
 from taipy.config.config import Config
 from taipy.config.config import Config
-from taipy.core._entity._ready_to_run_property import _ReadyToRunProperty
 from taipy.core._orchestrator._orchestrator import _Orchestrator
 from taipy.core._orchestrator._orchestrator import _Orchestrator
 from taipy.core._version._version_manager import _VersionManager
 from taipy.core._version._version_manager import _VersionManager
 from taipy.core.common import _utils
 from taipy.core.common import _utils
 from taipy.core.common._utils import _Subscriber
 from taipy.core.common._utils import _Subscriber
 from taipy.core.data._data_manager import _DataManager
 from taipy.core.data._data_manager import _DataManager
 from taipy.core.data.in_memory import InMemoryDataNode
 from taipy.core.data.in_memory import InMemoryDataNode
-from taipy.core.data.pickle import PickleDataNode
 from taipy.core.exceptions.exceptions import (
 from taipy.core.exceptions.exceptions import (
     InvalidSequenceId,
     InvalidSequenceId,
     ModelNotFound,
     ModelNotFound,
@@ -191,116 +188,6 @@ def test_get_all_on_multiple_versions_environment():
     )
     )
 
 
 
 
-def test_is_submittable():
-    task_id = "TASK_task_id"
-    scenario_id = "SCENARIO_scenario_id"
-    dn_1 = PickleDataNode("dn_1", Scope.SCENARIO, parent_ids={task_id, scenario_id}, properties={"default_data": 10})
-    dn_2 = PickleDataNode("dn_2", Scope.SCENARIO, parent_ids={task_id, scenario_id}, properties={"default_data": 10})
-    task = Task("task", {}, print, [dn_1, dn_2], id=task_id, parent_ids={scenario_id})
-    scenario = Scenario("scenario", {task}, {}, set(), scenario_id=scenario_id)
-    _DataManager._set(dn_1)
-    _DataManager._set(dn_2)
-    _TaskManager._set(task)
-    _ScenarioManager._set(scenario)
-
-    dn_1 = scenario.dn_1
-    dn_2 = scenario.dn_2
-
-    scenario.add_sequences({"sequence": [task]})
-    sequence = scenario.sequences["sequence"]
-    assert len(_SequenceManager._get_all()) == 1
-    assert sequence.id not in _ReadyToRunProperty._submittable_id_datanodes
-    assert scenario.id not in _ReadyToRunProperty._submittable_id_datanodes
-    assert _SequenceManager._is_submittable(sequence)
-    assert _SequenceManager._is_submittable(sequence.id)
-    assert _ScenarioManager._is_submittable(scenario)
-    assert not _SequenceManager._is_submittable("Sequence_temp")
-    assert not _SequenceManager._is_submittable("SEQUENCE_temp_SCENARIO_scenario")
-
-    dn_1.edit_in_progress = True
-    assert scenario.id in _ReadyToRunProperty._submittable_id_datanodes
-    assert sequence.id in _ReadyToRunProperty._submittable_id_datanodes
-    assert dn_1.id in _ReadyToRunProperty._submittable_id_datanodes[scenario.id]
-    assert dn_1.id in _ReadyToRunProperty._submittable_id_datanodes[sequence.id]
-    assert dn_1.id in _ReadyToRunProperty._datanode_id_submittables
-    assert scenario.id in _ReadyToRunProperty._datanode_id_submittables[dn_1.id]
-    assert sequence.id in _ReadyToRunProperty._datanode_id_submittables[dn_1.id]
-    assert _ReadyToRunProperty._submittable_id_datanodes[scenario.id][dn_1.id] == {
-        f"DataNode {dn_1.id} is being edited"
-    }
-    assert _ReadyToRunProperty._submittable_id_datanodes[sequence.id][dn_1.id] == {
-        f"DataNode {dn_1.id} is being edited"
-    }
-    assert not _ScenarioManager._is_submittable(scenario)
-    assert not _SequenceManager._is_submittable(sequence)
-    assert not _SequenceManager._is_submittable(sequence.id)
-
-    dn_1.edit_in_progress = False
-    assert scenario.id not in _ReadyToRunProperty._submittable_id_datanodes
-    assert sequence.id not in _ReadyToRunProperty._submittable_id_datanodes
-    assert dn_1.id not in _ReadyToRunProperty._datanode_id_submittables
-    assert _SequenceManager._is_submittable(sequence)
-    assert _SequenceManager._is_submittable(sequence.id)
-    assert _ScenarioManager._is_submittable(scenario)
-
-    dn_1.last_edit_date = None
-    dn_2.edit_in_progress = True
-    assert scenario.id in _ReadyToRunProperty._submittable_id_datanodes
-    assert sequence.id in _ReadyToRunProperty._submittable_id_datanodes
-    assert dn_1.id in _ReadyToRunProperty._submittable_id_datanodes[scenario.id]
-    assert dn_1.id in _ReadyToRunProperty._submittable_id_datanodes[sequence.id]
-    assert dn_2.id in _ReadyToRunProperty._submittable_id_datanodes[scenario.id]
-    assert dn_2.id in _ReadyToRunProperty._submittable_id_datanodes[sequence.id]
-    assert dn_1.id in _ReadyToRunProperty._datanode_id_submittables
-    assert scenario.id in _ReadyToRunProperty._datanode_id_submittables[dn_1.id]
-    assert sequence.id in _ReadyToRunProperty._datanode_id_submittables[dn_1.id]
-    assert dn_2.id in _ReadyToRunProperty._datanode_id_submittables
-    assert scenario.id in _ReadyToRunProperty._datanode_id_submittables[dn_2.id]
-    assert sequence.id in _ReadyToRunProperty._datanode_id_submittables[dn_2.id]
-    assert _ReadyToRunProperty._submittable_id_datanodes[scenario.id][dn_1.id] == {f"DataNode {dn_1.id} is not written"}
-    assert _ReadyToRunProperty._submittable_id_datanodes[sequence.id][dn_1.id] == {f"DataNode {dn_1.id} is not written"}
-    assert _ReadyToRunProperty._submittable_id_datanodes[scenario.id][dn_2.id] == {
-        f"DataNode {dn_2.id} is being edited"
-    }
-    assert _ReadyToRunProperty._submittable_id_datanodes[sequence.id][dn_2.id] == {
-        f"DataNode {dn_2.id} is being edited"
-    }
-    assert not _ScenarioManager._is_submittable(scenario)
-    assert not _SequenceManager._is_submittable(sequence)
-    assert not _SequenceManager._is_submittable(sequence.id)
-
-    dn_1.last_edit_date = datetime.now()
-    assert scenario.id in _ReadyToRunProperty._submittable_id_datanodes
-    assert sequence.id in _ReadyToRunProperty._submittable_id_datanodes
-    assert dn_1.id not in _ReadyToRunProperty._submittable_id_datanodes[scenario.id]
-    assert dn_1.id not in _ReadyToRunProperty._submittable_id_datanodes[sequence.id]
-    assert dn_2.id in _ReadyToRunProperty._submittable_id_datanodes[scenario.id]
-    assert dn_2.id in _ReadyToRunProperty._submittable_id_datanodes[sequence.id]
-    assert dn_1.id not in _ReadyToRunProperty._datanode_id_submittables
-    assert dn_2.id in _ReadyToRunProperty._datanode_id_submittables
-    assert scenario.id in _ReadyToRunProperty._datanode_id_submittables[dn_2.id]
-    assert sequence.id in _ReadyToRunProperty._datanode_id_submittables[dn_2.id]
-    assert _ReadyToRunProperty._submittable_id_datanodes[scenario.id][dn_2.id] == {
-        f"DataNode {dn_2.id} is being edited"
-    }
-    assert _ReadyToRunProperty._submittable_id_datanodes[sequence.id][dn_2.id] == {
-        f"DataNode {dn_2.id} is being edited"
-    }
-    assert not _ScenarioManager._is_submittable(scenario)
-    assert not _SequenceManager._is_submittable(sequence)
-    assert not _SequenceManager._is_submittable(sequence.id)
-
-    dn_2.edit_in_progress = False
-    assert scenario.id not in _ReadyToRunProperty._submittable_id_datanodes
-    assert sequence.id not in _ReadyToRunProperty._submittable_id_datanodes
-    assert dn_2.id not in _ReadyToRunProperty._submittable_id_datanodes[scenario.id]
-    assert dn_2.id not in _ReadyToRunProperty._submittable_id_datanodes[sequence.id]
-    assert dn_2.id not in _ReadyToRunProperty._datanode_id_submittables
-    assert _ScenarioManager._is_submittable(scenario)
-    assert _SequenceManager._is_submittable(sequence)
-    assert _SequenceManager._is_submittable(sequence.id)
-
-
 def test_submit():
 def test_submit():
     data_node_1 = InMemoryDataNode("foo", Scope.SCENARIO, "s1")
     data_node_1 = InMemoryDataNode("foo", Scope.SCENARIO, "s1")
     data_node_2 = InMemoryDataNode("bar", Scope.SCENARIO, "s2")
     data_node_2 = InMemoryDataNode("bar", Scope.SCENARIO, "s2")

+ 0 - 107
tests/core/task/test_task_manager.py

@@ -10,7 +10,6 @@
 # specific language governing permissions and limitations under the License.
 # specific language governing permissions and limitations under the License.
 
 
 import uuid
 import uuid
-from datetime import datetime
 from unittest import mock
 from unittest import mock
 
 
 import pytest
 import pytest
@@ -18,13 +17,11 @@ import pytest
 from taipy.config.common.scope import Scope
 from taipy.config.common.scope import Scope
 from taipy.config.config import Config
 from taipy.config.config import Config
 from taipy.core import taipy
 from taipy.core import taipy
-from taipy.core._entity._ready_to_run_property import _ReadyToRunProperty
 from taipy.core._orchestrator._orchestrator import _Orchestrator
 from taipy.core._orchestrator._orchestrator import _Orchestrator
 from taipy.core._version._version_manager import _VersionManager
 from taipy.core._version._version_manager import _VersionManager
 from taipy.core.data._data_manager import _DataManager
 from taipy.core.data._data_manager import _DataManager
 from taipy.core.data.in_memory import InMemoryDataNode
 from taipy.core.data.in_memory import InMemoryDataNode
 from taipy.core.exceptions.exceptions import ModelNotFound, NonExistingTask
 from taipy.core.exceptions.exceptions import ModelNotFound, NonExistingTask
-from taipy.core.scenario._scenario_manager_factory import _ScenarioManagerFactory
 from taipy.core.task._task_manager import _TaskManager
 from taipy.core.task._task_manager import _TaskManager
 from taipy.core.task._task_manager_factory import _TaskManagerFactory
 from taipy.core.task._task_manager_factory import _TaskManagerFactory
 from taipy.core.task.task import Task
 from taipy.core.task.task import Task
@@ -305,110 +302,6 @@ def test_hard_delete():
     assert len(_DataManager._get_all()) == 2
     assert len(_DataManager._get_all()) == 2
 
 
 
 
-def test_is_submittable():
-    task_manager = _TaskManagerFactory._build_manager()
-    scenario_manager = _ScenarioManagerFactory._build_manager()
-    assert len(_TaskManager._get_all()) == 0
-
-    dn_config_1 = Config.configure_pickle_data_node("dn_1", default_data=10)
-    dn_config_2 = Config.configure_pickle_data_node("dn_2", default_data=15)
-    task_config = Config.configure_task("task", print, [dn_config_1, dn_config_2])
-    scenario_config = Config.configure_scenario("scenario", [task_config])
-
-    scenario = scenario_manager._create(scenario_config)
-    task = scenario.tasks["task"]
-    dn_1 = scenario.dn_1
-    dn_2 = scenario.dn_2
-
-    assert len(task_manager._get_all()) == 1
-    assert len(scenario_manager._get_all()) == 1
-
-    assert scenario.id not in _ReadyToRunProperty._submittable_id_datanodes
-    assert task.id not in _ReadyToRunProperty._submittable_id_datanodes
-    assert task_manager._is_submittable(task)
-    assert task_manager._is_submittable(task.id)
-    assert scenario_manager._is_submittable(scenario)
-    assert scenario_manager._is_submittable(scenario.id)
-    assert not task_manager._is_submittable("Task_temp")
-
-    dn_1.edit_in_progress = True
-    assert scenario.id in _ReadyToRunProperty._submittable_id_datanodes
-    assert task.id in _ReadyToRunProperty._submittable_id_datanodes
-    assert dn_1.id in _ReadyToRunProperty._submittable_id_datanodes[scenario.id]
-    assert dn_1.id in _ReadyToRunProperty._submittable_id_datanodes[task.id]
-    assert dn_1.id in _ReadyToRunProperty._datanode_id_submittables
-    assert scenario.id in _ReadyToRunProperty._datanode_id_submittables[dn_1.id]
-    assert task.id in _ReadyToRunProperty._datanode_id_submittables[dn_1.id]
-    assert _ReadyToRunProperty._submittable_id_datanodes[scenario.id][dn_1.id] == {
-        f"DataNode {dn_1.id} is being edited"
-    }
-    assert _ReadyToRunProperty._submittable_id_datanodes[task.id][dn_1.id] == {f"DataNode {dn_1.id} is being edited"}
-    assert not scenario_manager._is_submittable(scenario)
-    assert not task_manager._is_submittable(task)
-    assert not task_manager._is_submittable(task.id)
-
-    dn_1.edit_in_progress = False
-    assert scenario.id not in _ReadyToRunProperty._submittable_id_datanodes
-    assert task.id not in _ReadyToRunProperty._submittable_id_datanodes
-    assert dn_1.id not in _ReadyToRunProperty._datanode_id_submittables
-    assert scenario_manager._is_submittable(scenario)
-    assert task_manager._is_submittable(task)
-    assert task_manager._is_submittable(task.id)
-
-    dn_1.last_edit_date = None
-    dn_2.edit_in_progress = True
-    assert scenario.id in _ReadyToRunProperty._submittable_id_datanodes
-    assert task.id in _ReadyToRunProperty._submittable_id_datanodes
-    assert dn_1.id in _ReadyToRunProperty._submittable_id_datanodes[scenario.id]
-    assert dn_1.id in _ReadyToRunProperty._submittable_id_datanodes[task.id]
-    assert dn_2.id in _ReadyToRunProperty._submittable_id_datanodes[scenario.id]
-    assert dn_2.id in _ReadyToRunProperty._submittable_id_datanodes[task.id]
-    assert dn_1.id in _ReadyToRunProperty._datanode_id_submittables
-    assert scenario.id in _ReadyToRunProperty._datanode_id_submittables[dn_1.id]
-    assert task.id in _ReadyToRunProperty._datanode_id_submittables[dn_1.id]
-    assert dn_2.id in _ReadyToRunProperty._datanode_id_submittables
-    assert scenario.id in _ReadyToRunProperty._datanode_id_submittables[dn_2.id]
-    assert task.id in _ReadyToRunProperty._datanode_id_submittables[dn_2.id]
-    assert _ReadyToRunProperty._submittable_id_datanodes[scenario.id][dn_1.id] == {f"DataNode {dn_1.id} is not written"}
-    assert _ReadyToRunProperty._submittable_id_datanodes[task.id][dn_1.id] == {f"DataNode {dn_1.id} is not written"}
-    assert _ReadyToRunProperty._submittable_id_datanodes[scenario.id][dn_2.id] == {
-        f"DataNode {dn_2.id} is being edited"
-    }
-    assert _ReadyToRunProperty._submittable_id_datanodes[task.id][dn_2.id] == {f"DataNode {dn_2.id} is being edited"}
-    assert not scenario_manager._is_submittable(scenario)
-    assert not task_manager._is_submittable(task)
-    assert not task_manager._is_submittable(task.id)
-
-    dn_1.last_edit_date = datetime.now()
-    assert scenario.id in _ReadyToRunProperty._submittable_id_datanodes
-    assert task.id in _ReadyToRunProperty._submittable_id_datanodes
-    assert dn_1.id not in _ReadyToRunProperty._submittable_id_datanodes[scenario.id]
-    assert dn_1.id not in _ReadyToRunProperty._submittable_id_datanodes[task.id]
-    assert dn_2.id in _ReadyToRunProperty._submittable_id_datanodes[scenario.id]
-    assert dn_2.id in _ReadyToRunProperty._submittable_id_datanodes[task.id]
-    assert dn_1.id not in _ReadyToRunProperty._datanode_id_submittables
-    assert dn_2.id in _ReadyToRunProperty._datanode_id_submittables
-    assert scenario.id in _ReadyToRunProperty._datanode_id_submittables[dn_2.id]
-    assert task.id in _ReadyToRunProperty._datanode_id_submittables[dn_2.id]
-    assert _ReadyToRunProperty._submittable_id_datanodes[scenario.id][dn_2.id] == {
-        f"DataNode {dn_2.id} is being edited"
-    }
-    assert _ReadyToRunProperty._submittable_id_datanodes[task.id][dn_2.id] == {f"DataNode {dn_2.id} is being edited"}
-    assert not scenario_manager._is_submittable(scenario)
-    assert not task_manager._is_submittable(task)
-    assert not task_manager._is_submittable(task.id)
-
-    dn_2.edit_in_progress = False
-    assert scenario.id not in _ReadyToRunProperty._submittable_id_datanodes
-    assert task.id not in _ReadyToRunProperty._submittable_id_datanodes
-    assert dn_2.id not in _ReadyToRunProperty._submittable_id_datanodes[scenario.id]
-    assert dn_2.id not in _ReadyToRunProperty._submittable_id_datanodes[task.id]
-    assert dn_2.id not in _ReadyToRunProperty._datanode_id_submittables
-    assert scenario_manager._is_submittable(scenario)
-    assert task_manager._is_submittable(task)
-    assert task_manager._is_submittable(task.id)
-
-
 def test_submit_task():
 def test_submit_task():
     data_node_1 = InMemoryDataNode("foo", Scope.SCENARIO, "s1")
     data_node_1 = InMemoryDataNode("foo", Scope.SCENARIO, "s1")
     data_node_2 = InMemoryDataNode("bar", Scope.SCENARIO, "s2")
     data_node_2 = InMemoryDataNode("bar", Scope.SCENARIO, "s2")