class TestCharacterData(TestCase): def setUp(self): self.node = Node() self.tnode = CharacterData('text') def test_textcontent(self): self.assertEqual(self.tnode.textContent, 'text') self.tnode.textContent = 'newtext' self.assertEqual(self.tnode.textContent, 'newtext') def test_length(self): self.assertEqual(self.tnode.length, 4) def test_append_data(self): self.tnode.appendData('new') self.assertEqual(self.tnode.textContent, 'textnew') def test_insert_data(self): self.tnode.insertData(1, 'new') self.assertEqual(self.tnode.textContent, 'tnewext') def test_delete_data(self): self.tnode.deleteData(1, 2) self.assertEqual(self.tnode.textContent, 'tt') def test_replace_data(self): self.tnode.replaceData(1, 2, 'new') self.assertEqual(self.tnode.textContent, 'tnewt') def test_invalid_methods(self): with self.assertRaises(NotImplementedError): self.tnode.appendChild(self.node) with self.assertRaises(NotImplementedError): self.tnode.removeChild(self.node) with self.assertRaises(NotImplementedError): self.tnode.insertBefore(self.node, self.node) with self.assertRaises(NotImplementedError): self.tnode.replaceChild(self.node, self.node) self.assertFalse(self.tnode.hasAttributes()) self.assertFalse(self.tnode.hasChildNodes()) self.assertEqual(len(self.tnode.childNodes), 0)