def test_on_complete(stc): sequencer = CStcSystem.Instance().GetObject("Sequencer") project = CStcSystem.Instance().GetObject("Project") ctor = CScriptableCreator() proto_mix = ctor.Create("StmProtocolMix", project) proto_mix.Set("MixInfo", get_example_mix_info()) cmd = ctor.Create(PKG + ".CreateProtocolMixCommand", sequencer) cmd.Set("MixInfo", get_example_mix_info()) cmd.Set("MixTagName", "test_StmProtoMix") cmd.SetCollection("PortGroupTagList", ["port group tag"]) cmd.Set("StmTemplateMix", proto_mix.GetObjectHandle()) cmd.Set("AutoExpandTemplateMix", False) CreateProtoMixCmd.get_this_cmd = MagicMock(return_value=cmd) CreateProtoMixCmd.on_complete([]) # Check the MixInfo mi = proto_mix.Get("MixInfo") err_str, mi_dict = json_utils.load_json(mi) assert err_str == "" assert "deviceCount" in mi_dict.keys() assert mi_dict["deviceCount"] == 100 assert "components" in mi_dict.keys() ti_count = 0 for item in mi_dict["components"]: assert "weight" in item.keys() assert item["weight"] == "12.1 %" assert "devicesPerBlock" in item.keys() assert item["devicesPerBlock"] == 0 assert "baseTemplateFile" in item.keys() assert item["baseTemplateFile"] == "IPv4_NoVlan.xml" ti_count = ti_count + 1 assert ti_count == 1
def test_on_complete_multi_row(stc): sequencer = CStcSystem.Instance().GetObject("Sequencer") project = CStcSystem.Instance().GetObject("Project") ctor = CScriptableCreator() plLogger = PLLogger.GetLogger("methodology") plLogger.LogInfo("start_test_on_complete_multi_row") # Create MixInfo with multiple rows err_str, mix_info = json_utils.load_json(get_example_mix_info()) assert err_str == "" components = mix_info["components"] # Duplicate row 4x and change weight row_template = components[0] row_1 = dict.copy(row_template) row_1["weight"] = "50.0 %" row_2 = dict.copy(row_template) row_2["weight"] = "25.0 %" row_3 = dict.copy(row_template) row_3["weight"] = "15.0 %" row_4 = dict.copy(row_template) row_4["weight"] = "10.0 %" mix_info["components"] = [row_1, row_2, row_3, row_4] proto_mix = ctor.Create("StmProtocolMix", project) proto_mix.Set("MixInfo", str(json.dumps(mix_info))) cmd = ctor.Create(PKG + ".CreateProtocolMixCommand", sequencer) cmd.Set("MixInfo", str(mix_info)) cmd.Set("MixTagName", "test_StmProtoMix_multirows") cmd.SetCollection("PortGroupTagList", ["port group tag"]) cmd.Set("StmTemplateMix", proto_mix.GetObjectHandle()) cmd.Set("AutoExpandTemplateMix", False) CreateProtoMixCmd.get_this_cmd = MagicMock(return_value=cmd) CreateProtoMixCmd.on_complete([]) # Check the MixInfo mi = proto_mix.Get("MixInfo") err_str, mi_dict = json_utils.load_json(mi) assert err_str == "" plLogger.LogInfo("mi: " + str(mi)) plLogger.LogInfo("mi_dict: " + str(mi_dict)) assert "deviceCount" in mi_dict.keys() assert mi_dict["deviceCount"] == 100 assert "components" in mi_dict.keys() assert len(mi_dict["components"]) == 4 a_row_1 = mi_dict["components"][0] assert a_row_1["weight"] == "50.0 %" a_row_2 = mi_dict["components"][1] assert a_row_2["weight"] == "25.0 %" a_row_3 = mi_dict["components"][2] assert a_row_3["weight"] == "15.0 %" a_row_4 = mi_dict["components"][3] assert a_row_4["weight"] == "10.0 %"