def test_update_template_using_src_tag_list(stc): test_xml = get_test_xml() root = etree.fromstring(test_xml) serial_ele_list = root.findall('.//*[@serializationBase="true"]') assert len(serial_ele_list) == 2 # Empty SrcTagList res = ExpTmplCmd.update_template_using_src_tag_list(root, []) assert len(res) == 2 tags_ele = None dev_ele = None for obj_ele in res: if obj_ele.tag == "EmulatedDevice": dev_ele = obj_ele elif obj_ele.tag == "Tags": tags_ele = obj_ele assert tags_ele is not None assert dev_ele is not None serial_ele_list = root.findall('.//*[@serializationBase="true"]') assert len(serial_ele_list) == 2 assert tags_ele in serial_ele_list assert dev_ele in serial_ele_list # SrcTagList with invalid tag name(s) src_tag_list = ["InvalidTagName1", "InvalidTagName2"] res = ExpTmplCmd.update_template_using_src_tag_list(root, src_tag_list) assert len(res) == 0 # SrcTagList with valid tag src_tag_list = ["Dhcpv4"] res = ExpTmplCmd.update_template_using_src_tag_list(root, src_tag_list) assert len(res) == 2 tags_ele = None dhcp_ele = None for obj_ele in res: if obj_ele.tag == "Dhcpv4BlockConfig": dhcp_ele = obj_ele elif obj_ele.tag == "Tags": tags_ele = obj_ele assert tags_ele is not None assert dhcp_ele is not None # As the SrcTagList takes precedence, the elements that were originally # marked with serializationBase are no longer marked as such. serial_ele_list = root.findall('.//*[@serializationBase="true"]') assert len(serial_ele_list) == 2 assert tags_ele in serial_ele_list assert dhcp_ele in serial_ele_list
def test_check_load_src_to_target(stc): # Load BgpRouterConfig on an EmulatedDevice bgp = etree.fromstring("<BgpRouterConfig />") dev = etree.fromstring("<EmulatedDevice />") res = ExpTmplCmd.check_load_src_to_target([bgp], "EmulatedDevice") assert res == "" # Load an Ipv4NetworkBlock and a Tag on an Ipv4Group net_block = etree.fromstring("<Ipv4NetworkBlock />") tag = etree.fromstring('<Tag name="Tag1" id="123" />') res = ExpTmplCmd.check_load_src_to_target([net_block, tag], "Ipv4Group") assert res == "" # Load an Ipv4NetworkBlock, a Tag, and a BgpRouterConfig # on an EmulatedDevice res = ExpTmplCmd.check_load_src_to_target([net_block, tag, bgp], "EmulatedDevice") assert res == "" # Load an EmulatedDevice on a BgpRouterConfig res = ExpTmplCmd.check_load_src_to_target([dev], "BgpRouterConfig") assert res == "BgpRouterConfig is not a valid parent " + "for EmulatedDevice."