Пример #1
0
 def setUp(self):
     self.text = nodes.Text('Line 1.\nLine 2.')
     self.unicode_text = nodes.Text(u'Möhren')
     self.longtext = nodes.Text('Mary had a little lamb whose '
                                'fleece was white as snow and '
                                'everwhere that Mary went the '
                                'lamb was sure to go.')
Пример #2
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]])
Пример #3
0
 def test_strip(self):
     text = nodes.Text(' was noch ', ' \was\ noch \\ ')
     stripped = text.lstrip().rstrip()
     stripped2 = text.lstrip(' wahn').rstrip(' wahn')
     self.assertEqual(stripped, u'was noch')
     self.assertEqual(stripped.rawsource, u'\was\\ noch')
     self.assertEqual(stripped2, u's noc')
     self.assertEqual(stripped2.rawsource, u's\\ noc')
Пример #4
0
 def test_withtext(self):
     element = nodes.Element('text\nmore', nodes.Text('text\nmore'))
     uelement = nodes.Element(u'grün', nodes.Text(u'grün'))
     self.assertEqual(repr(element), r"<Element: <#text: 'text\nmore'>>")
     if sys.version_info < (3, 0):
         self.assertEqual(repr(uelement), "<Element: <#text: 'gr\\xfcn'>>")
     else:
         self.assertEqual(repr(uelement), u"<Element: <#text: 'grün'>>")
     self.assertTrue(isinstance(repr(uelement), str))
     self.assertEqual(str(element), '<Element>text\nmore</Element>')
     self.assertEqual(str(uelement), '<Element>gr\xfcn</Element>')
     dom = element.asdom()
     self.assertEqual(dom.toxml(), '<Element>text\nmore</Element>')
     dom.unlink()
     element['attr'] = '1'
     self.assertEqual(repr(element), r"<Element: <#text: 'text\nmore'>>")
     self.assertEqual(str(element),
                      '<Element attr="1">text\nmore</Element>')
     dom = element.asdom()
     self.assertEqual(dom.toxml(), '<Element attr="1">text\nmore</Element>')
     dom.unlink()
     self.assertEqual(element.pformat(),
                      '<Element attr="1">\n    text\n    more\n')
Пример #5
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)
Пример #6
0
 def test_withtext(self):
     element = nodes.Element('text\nmore', nodes.Text('text\nmore'))
     self.assertEquals(repr(element), r"<Element: <#text: 'text\nmore'>>")
     self.assertEquals(str(element), '<Element>text\nmore</Element>')
     dom = element.asdom()
     self.assertEquals(dom.toxml(), '<Element>text\nmore</Element>')
     dom.unlink()
     element['attr'] = '1'
     self.assertEquals(repr(element), r"<Element: <#text: 'text\nmore'>>")
     self.assertEquals(str(element),
                       '<Element attr="1">text\nmore</Element>')
     dom = element.asdom()
     self.assertEquals(dom.toxml(),
                       '<Element attr="1">text\nmore</Element>')
     dom.unlink()
     self.assertEquals(element.pformat(),
                       '<Element attr="1">\n    text\n    more\n')
Пример #7
0
 def test_copy(self):
     grandchild = nodes.Text('rawsource')
     child = nodes.emphasis('rawsource', grandchild, att='child')
     e = nodes.Element('rawsource', child, att='e')
     # Shallow copy:
     e_copy = e.copy()
     self.assertTrue(e is not e_copy)
     # Internal attributes (like `rawsource`) are also copied.
     self.assertEqual(e.rawsource, 'rawsource')
     self.assertEqual(e_copy.rawsource, e.rawsource)
     self.assertEqual(e_copy['att'], 'e')
     # Children are not copied.
     self.assertEqual(len(e_copy), 0)
     # Deep copy:
     e_deepcopy = e.deepcopy()
     self.assertEqual(e_deepcopy.rawsource, e.rawsource)
     self.assertEqual(e_deepcopy['att'], 'e')
     # Children are copied recursively.
     self.assertEqual(e_deepcopy[0][0], grandchild)
     self.assertTrue(e_deepcopy[0][0] is not grandchild)
     self.assertEqual(e_deepcopy[0]['att'], 'child')
Пример #8
0
 def test_unicode(self):
     node = nodes.Element(u'Möhren', nodes.Text(u'Möhren', u'Möhren'))
     self.assertEqual(unicode(node), u'<Element>Möhren</Element>')
Пример #9
0
 def test_unicode(self):
     node = nodes.Element('Möhren', nodes.Text('Möhren', 'Möhren'))
     self.assertEqual(str(node), '<Element>Möhren</Element>')
Пример #10
0
 def setUp(self):
     self.text = nodes.Text('Line 1.\nLine 2.')
     self.unicode_text = nodes.Text(u'Möhren')
Пример #11
0
 def test_strip(self):
     text = nodes.Text(' was noch ', ' \was\ noch \\ ')
     stripped = text.lstrip().rstrip()
     stripped2 = text.lstrip(' wahn').rstrip(' wahn')
     self.assertEqual(stripped, 'was noch')
     self.assertEqual(stripped2, 's noc')