def test_update_xml_objek_header_attrib_value_diganti(self): """value dari attribut suatu tag adalah key dari sebuah dictionary, dan akan diganti dengan value yang sesuai. contoh value adalah : '1', '2', '3' dan sebuah dictionary adalah : {'1': 'kamu', '2': 'aku', '3': 'dia'} maka ketika value dari atribut sebuah tag adalah 1, maka akan diganti menjadi 'kamu' """ D = {1: 'bagus', 2: 'anang', 4: 'adit'} xml = """<parent> <root id='1'/> <root id='2' /> </parent> """ p = etree.fromstring(xml) parent = p.findall('.//root')[0] csv = CsvtoXml(self.original_csv_file()) hasil = csv._update_xml(tree_orig=p, tag='groupe', as_attrib=True, parent=parent, change_val=[('authno', D)]) expected = """<parent> <root id='1'> <groupe bk='nama' no='1' betaka='ini buku bagus' authno='bagus' cat='3'/> <groupe bk='munawir' no='2' betaka='kamus indo arab' authno='anang' cat='4'/> <groupe bk='sidu' no='3' betaka='kertas putih' authno='adit' cat='3'/> </root> <root id='2'/> </parent>""" # self.fail(etree.tostring(hasil)) self.assertXmlEqual(expected, hasil)
def test_update_xml_objek_header_attrib_parent_changed_element_objek_with_include( self): xml = """<parent> <root id='1'/> <root id='2' /> </parent> """ p = etree.fromstring(xml) parent = p.findall('.//root')[0] csv = CsvtoXml(self.original_csv_file()) hasil = csv._update_xml(tree_orig=p, tag='groupe', as_attrib=True, parent=parent, include=['bk', 'no', 'betaka'], col_name=[('bk', 'name')]) expected = """<parent> <root id='1'> <groupe name='nama' no='1' betaka='ini buku bagus'/> <groupe name='munawir' no='2' betaka='kamus indo arab' /> <groupe name='sidu' no='3' betaka='kertas putih'/> </root> <root id='2'/> </parent>""" # self.fail(etree.tostring(hasil)) self.assertXmlEqual(expected, hasil)
def test_update_xml_objek_header_attrib_dengan_tambah_attrib(self): xml = """<parent> <root id='1'/> <root id='2' /> </parent> """ p = etree.fromstring(xml) parent = p.findall('.//root')[1] csv = CsvtoXml(self.original_csv_file()) hasil = csv._update_xml(tree_orig=p, tag='groupe', as_attrib=True, parent=parent, include=['bk', 'no', 'betaka'], col_name=[('bk', 'name')], cus_attr=({ 'c': str(x) } for x in range(3))) expected = """<parent> <root id='1' /> <root id='2'> <groupe name='nama' no='1' betaka='ini buku bagus' c='0'/> <groupe name='munawir' no='2' betaka='kamus indo arab' c='1'/> <groupe name='sidu' no='3' betaka='kertas putih' c='2'/> </root> </parent>""" # self.fail(etree.tostring(hasil)) self.assertXmlEqual(expected, hasil)
def test_update_xml_objek_header_attrib_parent_element_objek(self): xml = """<parent> <root id='1'/> <root id='2' /> </parent> """ p = etree.fromstring(xml) parent = p.findall('.//root')[0] csv = CsvtoXml(self.original_csv_file()) hasil = csv._update_xml(tree_orig=p, tag='groupe', as_attrib=True, parent=parent) expected = """<parent> <root id='1'> <groupe bk='nama' no='1' betaka='ini buku bagus' authno='1' cat='3'/> <groupe bk='munawir' no='2' betaka='kamus indo arab' authno='2' cat='4'/> <groupe bk='sidu' no='3' betaka='kertas putih' authno='4' cat='3'/> </root> <root id='2'/> </parent>""" # self.fail(etree.tostring(hasil)) self.assertXmlEqual(expected, hasil)