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)