Пример #1
0
 def test_traverse(self):
     e = nodes.Element()
     e += nodes.Element()
     e[0] += nodes.Element()
     e[0] += nodes.TextElement()
     e[0][1] += nodes.Text('some text')
     e += nodes.Element()
     e += nodes.Element()
     self.assertEqual(list(e.traverse()),
                      [e, e[0], e[0][0], e[0][1], e[0][1][0], e[1], e[2]])
     self.assertEqual(list(e.traverse(include_self=False)),
                      [e[0], e[0][0], e[0][1], e[0][1][0], e[1], e[2]])
     self.assertEqual(list(e.traverse(descend=False)), [e])
     self.assertEqual(list(e[0].traverse(descend=False, ascend=True)),
                      [e[0], e[1], e[2]])
     self.assertEqual(list(e[0][0].traverse(descend=False, ascend=True)),
                      [e[0][0], e[0][1], e[1], e[2]])
     self.assertEqual(list(e[0][0].traverse(descend=False, siblings=True)),
                      [e[0][0], e[0][1]])
     self.testlist = e[0:2]
     self.assertEqual(list(e.traverse(condition=self.not_in_testlist)),
                      [e, e[0][0], e[0][1], e[0][1][0], e[2]])
     # Return siblings despite siblings=False because ascend is true.
     self.assertEqual(list(e[1].traverse(ascend=True, siblings=False)),
                      [e[1], e[2]])
     self.assertEqual(list(e[0].traverse()),
                      [e[0], e[0][0], e[0][1], e[0][1][0]])
     self.testlist = [e[0][0], e[0][1]]
     self.assertEqual(list(e[0].traverse(condition=self.not_in_testlist)),
                      [e[0], e[0][1][0]])
     self.testlist.append(e[0][1][0])
     self.assertEqual(list(e[0].traverse(condition=self.not_in_testlist)),
                      [e[0]])
     self.assertEqual(list(e.traverse(nodes.TextElement)), [e[0][1]])
Пример #2
0
 def test_next_node(self):
     e = nodes.Element()
     e += nodes.Element()
     e[0] += nodes.Element()
     e[0] += nodes.TextElement()
     e[0][1] += nodes.Text('some text')
     e += nodes.Element()
     e += nodes.Element()
     self.testlist = [e[0], e[0][1], e[1]]
     compare = [(e, e[0][0]), (e[0], e[0][0]), (e[0][0], e[0][1][0]),
                (e[0][1], e[0][1][0]), (e[0][1][0], e[2]), (e[1], e[2]),
                (e[2], None)]
     for node, next_node in compare:
         self.assertEqual(node.next_node(self.not_in_testlist, ascend=True),
                          next_node)
     self.assertEqual(e[0][0].next_node(ascend=True), e[0][1])
     self.assertEqual(e[2].next_node(), None)