Exemple #1
0
 def test_Element_deleter(self):
     node = htree.Element('p')
     text1 = htree.Text('text1')
     text2 = htree.Text('text2')
     node.extend([text1, text2])
     self.assertEqual(len(node), 2)
     del node[1]
     self.assertEqual(len(node), 1)
     self.assertEqual(text2.parent, None)
     self.assertEqual(text1.parent, node)
Exemple #2
0
 def test_Element_append(self):
     node = htree.Element('p')
     text1 = htree.Text('text1')
     node.append(text1)
     self.assertEqual(len(node), 1)
     self.assertEqual(text1.parent, node)
     text2 = htree.Text('text2')
     node.append(text2)
     self.assertEqual(len(node), 2)
     self.assertEqual(text2.parent, node)
     self.assertEqual(node[:], [text1, text2])
Exemple #3
0
 def test_Element_index(self):
     node = htree.Element('p')
     text1 = htree.Text('text1')
     node.append(text1)
     text2 = htree.Text('text2')
     node.append(text2)
     self.assertEqual(node.index(text1), 0)
     self.assertEqual(node.index(text2), 1)
     text3 = htree.Text('text3')
     with self.assertRaises(ValueError):
         node.index(text3)
Exemple #4
0
 def test_Element_setter_slice(self):
     node = htree.Element('p')
     text1 = htree.Text('text1')
     text2 = htree.Text('text2')
     node.extend([text1, text2])
     self.assertEqual(len(node), 2)
     text3 = htree.Text('text3')
     text4 = htree.Text('text4')
     node[1:2] = [text3, text4]
     self.assertEqual(len(node), 3)
     self.assertEqual(node[:], [text1, text3, text4])
Exemple #5
0
 def test_Element_setter(self):
     node = htree.Element('p')
     text = htree.Text('some text')
     othertext = htree.Text('other text')
     node.append(text)
     self.assertEqual(len(node), 1)
     node[0] = othertext
     self.assertEqual(len(node), 1)
     self.assertEqual(node[:], [othertext])
     self.assertEqual(othertext.parent, node)
     self.assertNotEqual(node[0], text)
Exemple #6
0
 def test_Element_previous_siblings(self):
     node = htree.Element('p')
     text1 = htree.Text('text1')
     text2 = htree.Text('text2')
     text3 = htree.Text('text3')
     node.append(text1)
     node.append(text2)
     node.append(text3)
     self.assertEqual(text1.previous_siblings(), [])
     self.assertEqual(text2.previous_siblings(), [text1])
     self.assertEqual(text3.previous_siblings(), [text1, text2])
     self.assertEqual(node.previous_siblings(), [])
Exemple #7
0
 def test_Element_next_siblings(self):
     node = htree.Element('p')
     text1 = htree.Text('text1')
     text2 = htree.Text('text2')
     text3 = htree.Text('text3')
     node.append(text1)
     node.append(text2)
     node.append(text3)
     self.assertEqual(text1.next_siblings(), [text2, text3])
     self.assertEqual(text2.next_siblings(), [text3])
     self.assertEqual(text3.next_siblings(), [])
     self.assertEqual(node.next_siblings(), [])
Exemple #8
0
 def test_Element_insert(self):
     node = htree.Element('p')
     text1 = htree.Text('text1')
     text2 = htree.Text('text2')
     text3 = htree.Text('text3')
     self.assertEqual(len(node), 0)
     node.insert(0, text1)
     self.assertEqual(len(node), 1)
     node.insert(1, text2)
     self.assertEqual(len(node), 2)
     node.insert(1, text3)
     self.assertEqual(len(node), 3)
     self.assertEqual(node[:], [text1, text3, text2])
Exemple #9
0
 def test_Text_escape_to_string(self):
     node = htree.Text('text & <tag>')
     self.assertEqual(node.to_string(), 'text &amp; &lt;tag&gt;')
     self.assertEqual(
         node.to_string(format='xhtml'),
         'text &amp; &lt;tag&gt;'
     )
Exemple #10
0
 def test_Element_insert_errors(self):
     node = htree.Element('p')
     text1 = htree.Text('text1')
     with self.assertRaises(TypeError):
         node.insert(None)
     emptynode = htree.Element('br')
     with self.assertRaises(TypeError):
         emptynode.insert(text1)
Exemple #11
0
 def test_Element_extend_errors(self):
     node = htree.Element('p')
     text1 = htree.Text('text1')
     with self.assertRaises(TypeError):
         node.extend([None])
     emptynode = htree.Element('br')
     with self.assertRaises(TypeError):
         emptynode.extend([text1])
Exemple #12
0
 def test_Element_clear(self):
     node = htree.Element('p', id='foo')
     child = htree.Text('some text)')
     node.append(child)
     node.clear()
     self.assertEqual(node.tag, 'p')
     self.assertEqual(list(node.items()), [])
     self.assertEqual(node[:], [])
     self.assertEqual(child.parent, None)
Exemple #13
0
 def test_Element_setter_errors(self):
     node = htree.Element('p')
     text1 = htree.Text('text1')
     with self.assertRaises(IndexError):
         node[0] = text1
     with self.assertRaises(TypeError):
         node[0] = None
     emptynode = htree.Element('br')
     with self.assertRaises(TypeError):
         emptynode[0] = text1
Exemple #14
0
 def test_Text_type(self):
     node = htree.Text('Some text.')
     self.assertTrue(htree.is_node(node))
     self.assertTrue(htree.is_text(node))
     self.assertTrue(htree.is_text(node, strict=True))
     self.assertFalse(htree.is_raw_text(node))
     self.assertFalse(htree.is_comment(node))
     self.assertFalse(htree.is_element(node))
     self.assertFalse(htree.is_entity(node))
     self.assertTrue(repr(node).startswith('<Text("Some t...") at '))
     self.assertEqual(node.parent, None)
Exemple #15
0
 def test_Element_with_nested_children_to_string(self):
     div = htree.Element('div')
     p = htree.Element('p')
     p.append(htree.Text('Some text '))
     em = htree.Element('em')
     em.append(htree.Text('with emphasis'))
     p.append(em)
     p.append(htree.Text('.'))
     div.append(p)
     self.assertEqual(div.to_string(), dedent(
         '''
         <div>
         <p>Some text <em>with emphasis</em>.</p>
         </div>
         '''
     ))
     self.assertEqual(div.to_string(format='xhtml'), dedent(
         '''
         <div>
         <p>Some text <em>with emphasis</em>.</p>
         </div>
         '''
     ))
Exemple #16
0
 def test_Element_copy(self):
     parent = htree.Element(None)
     node = htree.Element('p', id='foo')
     node.append(htree.Text('some text)'))
     parent.append(node)
     copy = node.copy()
     self.assertNotEqual(id(node), id(copy))
     self.assertTrue(htree.is_element(node))
     self.assertTrue(htree.is_element(copy))
     self.assertEqual(node.tag, copy.tag)
     self.assertEqual(node[:], copy[:])
     self.assertNotEqual(node.parent, copy.parent)
     self.assertEqual(copy.parent, None)
     self.assertEqual(node.parent, parent)
     self.assertEqual(node.items(), copy.items())
     copy.set('class', 'bar')
     self.assertNotEqual(node.items(), copy.items())
Exemple #17
0
 def test_to_bytes(self):
     node = htree.Text('some text')
     self.assertEqual(node.to_bytes(), 'some text'.encode(encoding='utf-8'))
Exemple #18
0
 def test_Element_getter(self):
     node = htree.Element('p')
     text = htree.Text('some text)')
     node.append(text)
     self.assertEqual(node[0], text)
Exemple #19
0
 def test_Element_with_text_tag_is_None_to_string(self):
     node = htree.Element()
     node.append(htree.Text('some text'))
     self.assertEqual(node.to_string(), 'some text')
     self.assertEqual(node.to_string(format='xhtml'), 'some text')
Exemple #20
0
 def test_Element_with_text_to_string(self):
     node = htree.Element('p')
     node.append(htree.Text('some text'))
     self.assertEqual(node.to_string(), '<p>some text</p>\n')
     self.assertEqual(node.to_string(format='xhtml'), '<p>some text</p>\n')
Exemple #21
0
 def test_Text_to_string(self):
     node = htree.Text('some text')
     self.assertEqual(node.to_string(), 'some text')
     self.assertEqual(node.to_string(format='xhtml'), 'some text')