def test_on_complete(stc): sequencer = CStcSystem.Instance().GetObject("Sequencer") project = CStcSystem.Instance().GetObject("Project") ctor = CScriptableCreator() route_mix = ctor.Create("StmTemplateMix", project) route_mix.Set("MixInfo", get_example_table_data()) cmd = ctor.Create(RPKG + ".CreateRouteMixCommand", sequencer) cmd.Set("MixInfo", get_example_table_data()) cmd.SetCollection("TargetObjectList", [route_mix.GetObjectHandle()]) cmd.Set("AutoExpandTemplateMix", False) cmd.Set("StmTemplateMix", route_mix.GetObjectHandle()) # Mock get_this_cmd gtc_p = patch(RPKG + ".CreateRouteMixCommand.get_this_cmd", new=MagicMock(return_value=cmd)) gtc_p.start() # Call on_complete CreateRouteMixCmd.on_complete([]) # Check the MixInfo mi = route_mix.Get("MixInfo") err_str, mi_dict = json_utils.load_json(mi) assert err_str == "" assert mi_dict.get("routeCount", 0) == 1000 comp_list = mi_dict.get("components", []) assert len(comp_list) == 2 gtc_p.stop()
def test_on_complete_fail(stc): sequencer = CStcSystem.Instance().GetObject("Sequencer") project = CStcSystem.Instance().GetObject("Project") ctor = CScriptableCreator() route_mix = ctor.Create("StmTemplateMix", project) route_mix.Set("MixInfo", get_example_table_data()) cmd = ctor.Create(RPKG + ".CreateRouteMixCommand", sequencer) cmd.Set("MixInfo", get_example_table_data()) cmd.SetCollection("TargetObjectList", [route_mix.GetObjectHandle()]) cmd.Set("AutoExpandTemplateMix", False) cmd.Set("StmTemplateMix", route_mix.GetObjectHandle()) # Mock get_this_cmd gtc_p = patch(RPKG + ".CreateRouteMixCommand.get_this_cmd", new=MagicMock(return_value=cmd)) gtc_p.start() # "Fail" one of the child commands iter_group_cmd = cmd.GetObject(PKG + ".IterationGroupCommand") # Call on_complete res = CreateRouteMixCmd.on_complete([iter_group_cmd]) assert not res assert "CreateRouteMixCommand.on_complete(): No additional" \ in cmd.Get("Status")