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)
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])
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)
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])
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)
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(), [])
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(), [])
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])
def test_Text_escape_to_string(self): node = htree.Text('text & <tag>') self.assertEqual(node.to_string(), 'text & <tag>') self.assertEqual( node.to_string(format='xhtml'), 'text & <tag>' )
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)
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])
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)
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
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)
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> ''' ))
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())
def test_to_bytes(self): node = htree.Text('some text') self.assertEqual(node.to_bytes(), 'some text'.encode(encoding='utf-8'))
def test_Element_getter(self): node = htree.Element('p') text = htree.Text('some text)') node.append(text) self.assertEqual(node[0], text)
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')
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')
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')