Exemple #1
0
Fichier : wx.py Projet : ssbr/djirc
 def receive_xml(self, element):
     start = self.control.GetLastPosition()
     self.control.AppendText(common.etree_tostring(element) + '\n')
     
     # starts[node] = start_of_element
     starts = {}
     ends = {}
     
     # we'll mark up in order of endpoints. It doesn't make a difference
     # (due to perfect nesting)
     pos = 0
     for node, seen in common.dfs(element):
         if not seen:
             starts[node] = pos + start
             pos += len(node.text or '')
         else:
             ends[node] = pos + start
             pos += len(node.tail or '')
             
     for node, start in sorted(starts.iteritems(), key=operator.itemgetter(1)):
         try:
             end = ends[node]
         except KeyError:
             log.err()
             continue
         
         attr = element2TextAttr(node)
         success = self.control.SetStyle(start, end, attr)
         if not success:
             log.err("SetStyle failed for element: %s" %
                 etree.tostring(node))
Exemple #2
0
 def test_simple_nested(self):
     A = etree.Element('A')
     B = etree.SubElement(A, 'B')
     self.assertEqual(list(common.dfs(A)),
         [(A, False),
             (B, False),
             (B, True),
         (A, True)])
Exemple #3
0
 def test_nested_traversal_order(self):
     # test that B comes before C
     A = etree.Element('A')
     B = etree.SubElement(A, 'B')
     C = etree.SubElement(A, 'C')
     self.assertEqual(list(common.dfs(A)),
         [(A, False),
             (B, False),
             (B, True),
             (C, False),
             (C, True),
         (A, True)])
Exemple #4
0
 def test_singleton(self):
     e = etree.fromstring('<empty/>')
     self.assertEqual(list(common.dfs(e)), [(e, False), (e, True)])