def test_run(stc): test_xml = get_test_xml() ctor = CScriptableCreator() stc_sys = CStcSystem.Instance() proj = stc_sys.GetObject('Project') seq = stc_sys.GetObject('Sequencer') # Create the traffic mix traf_mix = ctor.Create('StmTrafficMix', proj) traf_mix.Set('MixInfo', '<MixInfo Load="10.0" LoadUnit="PERCENT_LINE_RATE" WeightList="" />') cmd = ctor.Create(PKG + '.LoadTrafficTemplateCommand', seq) cmd.Set('TemplateXml', test_xml) cmd.Set('EnableLoadFromFileName', False) cmd.Set('StmTemplateMix', traf_mix.GetObjectHandle()) command.get_this_cmd = MagicMock(return_value=cmd) # Create a contained command to check the StmTemplateConfig # gets copied in. mod_cmd = ctor.Create(PKG_BASE + '.ModifyTemplatePropertyCommand', cmd) cmd.SetCollection("CommandList", [mod_cmd.GetObjectHandle()]) ret = command.run(cmd.Get('CopiesPerParent'), cmd.GetCollection('TargetTagList'), cmd.Get('TemplateXml'), cmd.Get('TemplateXmlFileName'), cmd.Get('TagPrefix'), cmd.Get('AutoExpandTemplate'), cmd.Get('EnableLoadFromFileName'), cmd.Get('Weight'), cmd.Get('StmTemplateMix')) assert True is ret mix_elem = etree.fromstring(traf_mix.Get('MixInfo')) wl_str = mix_elem.get('WeightList') wl_float = [float(x) for x in wl_str.split()] assert 1 == len(wl_float) assert 10.0 == wl_float[0] obj_list = traf_mix.GetObjects('StmTemplateConfig') assert 1 == len(obj_list) # Verify the command set its output properly assert cmd.Get("StmTemplateConfig") == obj_list[0].GetObjectHandle() # Verify the command configured its children properly assert mod_cmd.Get("StmTemplateConfig") == obj_list[0].GetObjectHandle() # Check the parent parent_list = obj_list[0].GetObjects("Scriptable", RelationType("ParentChild", 1)) assert len(parent_list) == 1 assert parent_list[0].GetObjectHandle() == \ traf_mix.GetObjectHandle()
def test_validate_defaults(stc): ctor = CScriptableCreator() stc_sys = CStcSystem.Instance() seq = stc_sys.GetObject('Sequencer') cmd = ctor.Create(PKG + '.LoadTrafficTemplateCommand', seq) assert False is cmd.Get('AutoExpandTemplate') command.get_this_cmd = MagicMock(return_value=cmd) ret = command.validate(cmd.Get('CopiesPerParent'), cmd.GetCollection('TargetTagList'), cmd.Get('TemplateXml'), cmd.Get('TemplateXmlFileName'), cmd.Get('TagPrefix'), cmd.Get('AutoExpandTemplate'), cmd.Get('EnableLoadFromFileName'), cmd.Get('Weight'), cmd.Get('StmTemplateMix')) assert '' == ret