Browse Source

fixed bug in data model not deserialize parent_ids

Toan Quach 1 year ago
parent
commit
c8b7a6a665
2 changed files with 39 additions and 19 deletions
  1. 31 15
      tests/core/sequence/test_sequence.py
  2. 8 4
      tests/core/sequence/test_sequence_manager.py

+ 31 - 15
tests/core/sequence/test_sequence.py

@@ -412,27 +412,43 @@ def test_get_inputs():
 
 
 def test_is_ready_to_run():
-    data_node_1 = PickleDataNode("foo", Scope.SCENARIO, "s1", properties={"default_data": 1})
-    data_node_2 = PickleDataNode("bar", Scope.SCENARIO, "s2", properties={"default_data": 2})
-    data_node_4 = PickleDataNode("qux", Scope.SCENARIO, "s4", properties={"default_data": 4})
-    data_node_5 = PickleDataNode("quux", Scope.SCENARIO, "s5", properties={"default_data": 5})
-    data_node_6 = PickleDataNode("quuz", Scope.SCENARIO, "s6", properties={"default_data": 6})
-    data_node_7 = PickleDataNode("corge", Scope.SCENARIO, "s7", properties={"default_data": 7})
-    task_1 = Task("grault", {}, print, [data_node_1, data_node_2], [data_node_4], TaskId("t1"))
-    task_2 = Task("garply", {}, print, [data_node_6], [data_node_5], TaskId("t2"))
-    task_3 = Task("waldo", {}, print, [data_node_5, data_node_4], id=TaskId("t3"))
-    task_4 = Task("fred", {}, print, [data_node_4], [data_node_7], TaskId("t4"))
-    sequence = Sequence({}, [task_4, task_2, task_1, task_3], SequenceId("p1"))
+    scenario_id = "SCENARIO_scenario_id"
+    task_1_id, task_2_id, task_3_id, task_4_id = (
+        TaskId("TASK_t1"),
+        TaskId("TASK_t2"),
+        TaskId("TASK_t3"),
+        TaskId("TASK_t4"),
+    )
+    data_node_1 = PickleDataNode("foo", Scope.SCENARIO, "s1", parent_ids={task_1_id}, properties={"default_data": 1})
+    data_node_2 = PickleDataNode("bar", Scope.SCENARIO, "s2", parent_ids={task_1_id}, properties={"default_data": 2})
+    data_node_4 = PickleDataNode(
+        "qux", Scope.SCENARIO, "s4", parent_ids={task_1_id, task_3_id, task_4_id}, properties={"default_data": 4}
+    )
+    data_node_5 = PickleDataNode(
+        "quux", Scope.SCENARIO, "s5", parent_ids={task_2_id, task_3_id}, properties={"default_data": 5}
+    )
+    data_node_6 = PickleDataNode("quuz", Scope.SCENARIO, "s6", parent_ids={task_2_id}, properties={"default_data": 6})
+    data_node_7 = PickleDataNode("corge", Scope.SCENARIO, "s7", parent_ids={task_4_id}, properties={"default_data": 7})
+    task_1 = Task("grault", {}, print, [data_node_1, data_node_2], [data_node_4], id=task_1_id)
+    task_2 = Task("garply", {}, print, [data_node_6], [data_node_5], id=task_2_id)
+    task_3 = Task("waldo", {}, print, [data_node_5, data_node_4], id=task_3_id)
+    task_4 = Task("fred", {}, print, [data_node_4], [data_node_7], id=task_4_id)
+    scenario = Scenario("scenario_config", [task_1, task_2, task_3, task_4], {}, scenario_id=scenario_id)
+
+    data_manager = _DataManagerFactory._build_manager()
+    for dn in [data_node_1, data_node_2, data_node_4, data_node_5, data_node_6, data_node_7]:
+        data_manager._set(dn)
+    for task in [task_1, task_2, task_3, task_4]:
+        _TaskManager._set(task)
+    _ScenarioManager._set(scenario)
+    scenario.add_sequence("sequence", [task_4, task_2, task_1, task_3])
+    sequence = scenario.sequences["sequence"]
     # s1 ---      s6 ---> t2 ---> s5
     #       |                     |
     #       |---> t1 ---|      -----> t3
     #       |           |      |
     # s2 ---             ---> s4 ---> t4 ---> s7
 
-    data_manager = _DataManagerFactory._build_manager()
-    for dn in [data_node_1, data_node_2, data_node_4, data_node_5, data_node_6, data_node_7]:
-        data_manager._set(dn)
-
     assert sequence.is_ready_to_run()
 
     data_node_1.edit_in_progress = True

+ 8 - 4
tests/core/sequence/test_sequence_manager.py

@@ -25,6 +25,7 @@ from taipy.core.common import _utils
 from taipy.core.common._utils import _Subscriber
 from taipy.core.data._data_manager import _DataManager
 from taipy.core.data.in_memory import InMemoryDataNode
+from taipy.core.data.pickle import PickleDataNode
 from taipy.core.exceptions.exceptions import (
     InvalidSequenceId,
     ModelNotFound,
@@ -189,14 +190,17 @@ def test_get_all_on_multiple_versions_environment():
 
 
 def test_is_submittable():
-    dn = InMemoryDataNode("dn", Scope.SCENARIO, properties={"default_data": 10})
-    task = Task("task", {}, print, [dn])
-    scenario = Scenario("scenario", {task}, {}, set())
+    task_id = "TASK_task_id"
+    scenario_id = "SCENARIO_scenario_id"
+    dn = PickleDataNode("dn", Scope.SCENARIO, parent_ids={task_id, scenario_id}, properties={"default_data": 10})
+    task = Task("task", {}, print, [dn], id=task_id, parent_ids={scenario_id})
+    scenario = Scenario("scenario", {task}, {}, set(), scenario_id=scenario_id)
+    _DataManager._set(dn)
+    _TaskManager._set(task)
     _ScenarioManager._set(scenario)
 
     scenario.add_sequences({"sequence": [task]})
     sequence = scenario.sequences["sequence"]
-
     assert len(_SequenceManager._get_all()) == 1
     assert _SequenceManager._is_submittable(sequence)
     assert _SequenceManager._is_submittable(sequence.id)