Ejemplo n.º 1
0
    def test_xmltreenode_getRoot(self):
        node = xmltreenode.XMLTreeNode("root")
        child_a = xmltreenode.XMLTreeNode("a")
        node.addChild(child_a)

        self.assertEqual(node.getRoot().toSimpleString(),
                         child_a.getRoot().toSimpleString())
        self.assertEqual(node.getRoot().toSimpleString(), "<root><a /></root>")
Ejemplo n.º 2
0
    def test_xmltreenode_reparent(self):
        node = xmltreenode.XMLTreeNode("root")
        child_a = xmltreenode.XMLTreeNode("a")

        orig_root = node.getRoot()
        node.reparent(child_a)
        new_root = node.getRoot()
        self.assertNotEqual(orig_root, new_root)
        self.assertEqual(new_root.toSimpleString(), '<a><root /></a>')
Ejemplo n.º 3
0
    def test_xmltreenode_toRecursiveSortString(self):
        node = xmltreenode.XMLTreeNode("root")
        node.addAttrib("root", "value")
        child_a = xmltreenode.XMLTreeNode("a")
        child_a.addAttrib("a", "test")
        node.addChild(child_a)
        expected_output = "root{'root':'value'}a{'a':'test'}"

        self.assertEqual(node.toRecursiveSortString(), expected_output)
Ejemplo n.º 4
0
    def test_xmltreenode_reparent_child_not_added(self):
        node = xmltreenode.XMLTreeNode("root")
        child_a = xmltreenode.XMLTreeNode("a")

        orig_root = node.getRoot()
        node.reparent(child_a, addchild=False)
        new_root = node.getRoot()
        self.assertNotEqual(orig_root, new_root)
        self.assertEqual(new_root.toSimpleString(), '<a />')
Ejemplo n.º 5
0
    def test_xmltreenode_toString(self):
        node = xmltreenode.XMLTreeNode("root")
        child_a = xmltreenode.XMLTreeNode("a")
        child_aa = xmltreenode.XMLTreeNode("aa")
        child_aaa = xmltreenode.XMLTreeNode("aaa")
        child_aa.addChild(child_aaa)
        child_a.addChild(child_aa)
        node.addChild(child_a)
        expected_output = "<root>\n  <a>\n    <aa>\n      <aaa />\n    </aa>\n  </a>\n</root>\n"

        self.assertEqual(node.toString(), expected_output)
Ejemplo n.º 6
0
    def test_xmltreenode_removeChild_removed_child_has_different_parent(self):
        node = xmltreenode.XMLTreeNode("root")
        node2 = xmltreenode.XMLTreeNode("root2")
        child_a = xmltreenode.XMLTreeNode("a")
        child_b = xmltreenode.XMLTreeNode("b")
        child_c = xmltreenode.XMLTreeNode("c")
        node.addChild(child_a)
        node.addChild(child_b)
        node.addChild(child_c)
        node2.addChild(child_c)

        self.assertFalse(node.removeChild(node2.getChildrenRef()[0]))
Ejemplo n.º 7
0
    def test_xmltreenode_removeChild(self):
        node = xmltreenode.XMLTreeNode("root")
        child_a = xmltreenode.XMLTreeNode("a")
        child_b = xmltreenode.XMLTreeNode("b")
        node.addChild(child_a)
        node.addChild(child_b)

        self.assertEqual(len(node), 2)
        self.assertTrue(node.removeChild(child_a))

        node_child = node.getChildrenRef()
        self.assertEqual(len(node), 1)
        self.assertEqual(node_child[0], child_b)
Ejemplo n.º 8
0
    def test_xmltreenode_numChildren(self):
        node = xmltreenode.XMLTreeNode("root")
        child_a = xmltreenode.XMLTreeNode("a")
        child_b = xmltreenode.XMLTreeNode("b")
        node.addChild(child_a)
        node.addChild(child_b)

        child_c = xmltreenode.XMLTreeNode("c")

        self.assertEqual(node.numChildren(), 2)

        node.addChild(child_c)
        self.assertEqual(node.numChildren(), 3)
Ejemplo n.º 9
0
    def test_xmltreenode_copy(self):
        node = xmltreenode.XMLTreeNode("root")
        child_a = xmltreenode.XMLTreeNode("a")
        node.addChild(child_a)
        node.addChild(xmltreenode.XMLTreeNode("b"))
        copynode = node.copy()

        self.assertNotEqual(id(node), id(copynode))
        self.assertEqual(len(node), node.numChildren())
        self.assertEqual(len(node), len(copynode))

        node_child = node.getChildren()
        copynode_child = copynode.getChildren()
        # In case of copy we still have same children
        for i in range(len(node)):
            self.assertEqual(node_child[i], copynode_child[i])
Ejemplo n.º 10
0
    def test_xmltreenode_deepcopy(self):
        node = xmltreenode.XMLTreeNode("root")
        child_a = xmltreenode.XMLTreeNode("a")
        node.addChild(child_a)
        node.addChild(xmltreenode.XMLTreeNode("b"))

        deepcopynode = node.deepcopy()
        self.assertNotEqual(id(node), id(deepcopynode))
        self.assertEqual(len(node), node.numChildren())
        self.assertEqual(len(node), len(deepcopynode))

        node_child = node.getChildren()
        deepcopynode_child = deepcopynode.getChildren()
        # Deepcopy copies children as well
        for i in range(len(node)):
            self.assertNotEqual(node_child[i], deepcopynode_child[i])
Ejemplo n.º 11
0
    def test_xmltreenode_toSortString(self):
        node = xmltreenode.XMLTreeNode("root")
        node.addAttrib("root", "value")
        node.addAttrib("a", "test")
        expected_output = "root{'a':'test','root':'value'}"

        self.assertEqual(node.toSortString(), expected_output)
Ejemplo n.º 12
0
    def test_treeNode_setValue_getValue_and_appendValue(self):
        node = xmltreenode.XMLTreeNode("root")
        self.assertEqual(node.getValue(), "")

        node.setValue("TEST")
        self.assertEqual(node.getValue(), "TEST")

        node.appendValue("_SOMETHING")
        self.assertEqual(node.getValue(), "TEST_SOMETHING")
Ejemplo n.º 13
0
    def test_xmltreenode_insertAfterChild_without_reparenting(self):
        node = xmltreenode.XMLTreeNode("root")
        child_a = xmltreenode.XMLTreeNode("a")
        child_b = xmltreenode.XMLTreeNode("b")
        node.addChild(child_a)
        node.addChild(child_b)

        child_c = xmltreenode.XMLTreeNode("c")

        self.assertEqual(len(node), 2)

        node.insertAfterChild(child_a, child_c, reparent=False)
        self.assertEqual(len(node), 3)

        # Check have same output
        node_child = node.getChildrenRef()
        self.assertEqual(node_child[0], child_a)
        self.assertEqual(node_child[1], child_c)
        self.assertEqual(node_child[2], child_b)
Ejemplo n.º 14
0
    def test_xmltreenode_insertChild(self):
        node = xmltreenode.XMLTreeNode("root")
        child_a = xmltreenode.XMLTreeNode("a")
        child_b = xmltreenode.XMLTreeNode("b")
        node.addChild(child_a)
        node.addChild(child_b)

        child_c = xmltreenode.XMLTreeNode("c")

        self.assertEqual(len(node), 2)

        node.insertChild(0, child_c)
        self.assertEqual(len(node), 3)

        # Check have same output
        node_child = node.getChildrenRef()
        self.assertEqual(node_child[0], child_c)
        self.assertEqual(node_child[1], child_a)
        self.assertEqual(node_child[2], child_b)
        self.assertEqual(node_child[0].getRoot(), node_child[1].getRoot())
Ejemplo n.º 15
0
    def test_xmltreenode_append_insert_and_remove(self):
        node = xmltreenode.XMLTreeNode("root")
        child_a = xmltreenode.XMLTreeNode("a")
        child_b = xmltreenode.XMLTreeNode("b")
        child_c = xmltreenode.XMLTreeNode("c")

        self.assertEqual(node.getChildren(), [])

        node.append(child_a)

        self.assertEqual(node.getChildren(), [child_a])

        node.insert(0, child_b)
        node.insert(2, child_c)

        self.assertEqual(node.getChildren(), [child_b, child_a, child_c])

        node.remove(child_a)

        self.assertEqual(node.getChildren(), [child_b, child_c])
Ejemplo n.º 16
0
    def test_xmltreenode_setData_and_getData(self):
        root = "root"
        node = xmltreenode.XMLTreeNode(root)
        test_data = "test_data"

        self.assertEqual(node.getData(), root)
        node.setData(test_data)
        self.assertEqual(node.getData(), test_data)

        self.assertTrue(node.isData(test_data))
        self.assertFalse(node.isData("random"))
Ejemplo n.º 17
0
    def test_xmltreenode_insertAfterChild_after_child_not_found_append_added_child_to_list(
            self):
        node = xmltreenode.XMLTreeNode("root")
        child_a = xmltreenode.XMLTreeNode("a")
        child_b = xmltreenode.XMLTreeNode("b")
        node.addChild(child_a)
        node.addChild(child_b)

        child_c = xmltreenode.XMLTreeNode("c")
        child_d = xmltreenode.XMLTreeNode("d")

        self.assertEqual(len(node), 2)

        node.insertAfterChild(child_c, child_d)
        self.assertEqual(len(node), 3)

        # Check have same output
        node_child = node.getChildrenRef()
        self.assertEqual(node_child[0], child_a)
        self.assertEqual(node_child[1], child_b)
        self.assertEqual(node_child[2], child_d)
Ejemplo n.º 18
0
    def test_xmltreenode_getChildren_and_getChildrenRef(self):
        node = xmltreenode.XMLTreeNode("root")
        child_a = xmltreenode.XMLTreeNode("a")
        child_b = xmltreenode.XMLTreeNode("b")
        child_c = xmltreenode.XMLTreeNode("c")
        node.addChild(child_a)
        node.addChild(child_b)

        childs = node.getChildren()
        childs_ref = node.getChildrenRef()
        self.assertListEqual(childs, childs_ref)
        self.assertNotEqual(id(childs), id(childs_ref))

        node.addChild(child_c)

        childs_new = node.getChildren()
        childs_ref_new = node.getChildrenRef()
        self.assertListEqual(childs_new, childs_ref_new)
        self.assertNotEqual(id(childs_new), id(childs_ref_new))

        self.assertEqual(id(childs_ref), id(childs_ref_new))
        self.assertNotEqual(id(childs), id(childs_new))
Ejemplo n.º 19
0
    def test_xmltreenode_insertChild_multiple_childs(self):
        node = xmltreenode.XMLTreeNode("root")
        child_a = xmltreenode.XMLTreeNode("a")
        child_b = xmltreenode.XMLTreeNode("b")
        node.addChild(child_a)
        node.addChild(child_b)

        child_c = xmltreenode.XMLTreeNode("c")
        child_d = xmltreenode.XMLTreeNode("d")

        self.assertEqual(len(node), 2)

        node.insertChild(0, child_c)
        self.assertEqual(len(node), 3)
        node.insertChild(2, child_d)
        self.assertEqual(len(node), 4)

        # Check have same output
        node_child = node.getChildrenRef()
        self.assertEqual(node_child[0], child_c)
        self.assertEqual(node_child[1], child_a)
        self.assertEqual(node_child[2], child_d)
        self.assertEqual(node_child[3], child_b)
Ejemplo n.º 20
0
    def test_xmltreenode_XMLTreeNodeList(self):
        tree_node_list = xmltreenode.XMLTreeNode.XMLTreeNodeList()
        child_a = xmltreenode.XMLTreeNode("a")

        self.assertEqual(len(tree_node_list), 0)

        tree_node_list.append(self.root)
        tree_node_list.append(self.a)
        tree_node_list.append(self.b)

        self.assertEqual(len(tree_node_list), 3)

        self.assertIn(self.a, tree_node_list)
        self.assertNotIn(child_a, tree_node_list)

        self.assertEqual(tree_node_list[0], self.root)
        self.assertEqual(tree_node_list[10], None)
Ejemplo n.º 21
0
if len(sys.argv) <= 1:
    print ('Usage: %s file.xml' % (sys.argv[0]))
    sys.exit(1)

parse = xmltreenode.CustomXMLParser()
res = parse.load(sys.argv[1])
root = res.getRoot()

root.addAttrib('added_attribute', 'Hello')

index = 0
renamed = None
last = None
for item in root:
    if index == 1:
        item.setData('renamed_tag')
        renamed = item
    last = item
    index += 1

if renamed is not None:
    new_item = xmltreenode.XMLTreeNode("new_item")
    new_item_0 = xmltreenode.XMLTreeNode("new_item_at_0")
    renamed.addChild(new_item)
    renamed.insertChild(0, new_item_0)

if last is not None and last != renamed:
    root.removeChild(last)

print (root.toString())
Ejemplo n.º 22
0
    def setUp(self):
        self.node = xmltreenode.XMLTreeNode("root")
        self.c1 = xmltreenode.XMLTreeNode("child1")
        self.c2 = xmltreenode.XMLTreeNode("child2")
        self.c3 = xmltreenode.XMLTreeNode("child3")
        self.node.addChild(self.c1)
        self.node.addChild(self.c2)
        self.c2.addChild(self.c3)

        self.root = xmltreenode.XMLTreeNode("root")
        self.a = xmltreenode.XMLTreeNode("ChildA")
        self.b = xmltreenode.XMLTreeNode("ChildB")
        self.c = xmltreenode.XMLTreeNode("ChildC")
        self.root.addChild(self.a)
        self.root.addChild(self.b)
        self.root.addChild(self.c)
        self.aa = xmltreenode.XMLTreeNode("Test")
        self.ab = xmltreenode.XMLTreeNode("Test2")
        self.a.addChild(self.aa)
        self.a.addChild(self.ab)
        self.ba = xmltreenode.XMLTreeNode("Test")
        self.b.addChild(self.ba)
        self.baa = xmltreenode.XMLTreeNode("SubTest")
        self.bab = xmltreenode.XMLTreeNode("SubTest2")
        self.ba.addChild(self.baa)
        self.ba.addChild(self.bab)
        self.ca = xmltreenode.XMLTreeNode("Test")
        self.cb = xmltreenode.XMLTreeNode("Other")
        self.cc = xmltreenode.XMLTreeNode("Test2")
        self.c.addChild(self.ca)
        self.c.addChild(self.cb)
        self.c.addChild(self.cc)

        self.iters = xmltreenode.XMLTreeNode("root")
        self.iters.addChild(xmltreenode.XMLTreeNode("Test"))
        self.iters.addChild(xmltreenode.XMLTreeNode("Test"))
        self.iters.addChild(xmltreenode.XMLTreeNode("Test2"))
        self.iters_o = xmltreenode.XMLTreeNode("Other")
        self.iters_o.addChild(xmltreenode.XMLTreeNode("Test"))
        self.iters.addChild(self.iters_o)
Ejemplo n.º 23
0
    def test_xmltreenode_getParent(self):
        node = xmltreenode.XMLTreeNode("root")
        child_a = xmltreenode.XMLTreeNode("a")
        node.addChild(child_a)

        self.assertEqual(child_a.getParent(), node)
Ejemplo n.º 24
0
    def test_xmltreenode_removeChild_child_not_in_parents_child_list(self):
        node = xmltreenode.XMLTreeNode("root")
        child_a = xmltreenode.XMLTreeNode("a")
        child_a.reparent(node, addchild=False)

        self.assertFalse(node.removeChild(child_a))