Package lxml :: Package tests :: Module test_builder
[hide private]
[frames] | no frames]

Source Code for Module lxml.tests.test_builder

 1  # -*- coding: utf-8 -*- 
 2  import unittest 
 3   
 4  """ 
 5  Tests that ElementMaker works properly. 
 6  """ 
 7   
 8  import sys, os.path 
 9  from lxml import etree 
10  from lxml.builder import E 
11   
12  this_dir = os.path.dirname(__file__) 
13  if this_dir not in sys.path: 
14      sys.path.insert(0, this_dir) # needed for Py3 
15   
16  from common_imports import HelperTestCase, BytesIO, _bytes 
17   
18   
19 -class BuilderTestCase(HelperTestCase):
20 etree = etree 21
23 class StringSubclass(str): pass 24 wrapped = E.b(StringSubclass('Hello')) 25 self.assertEqual(_bytes('<b>Hello</b>'), etree.tostring(wrapped))
26
28 class UnknownType(object): 29 pass
30 self.assertRaises(TypeError, E.b, UnknownType())
31
32 - def test_cdata(self):
33 wrapped = E.b(etree.CDATA('Hello')) 34 self.assertEqual(_bytes('<b><![CDATA[Hello]]></b>'), etree.tostring(wrapped))
35
36 - def test_cdata_solo(self):
37 self.assertRaises(ValueError, E.b, 'Hello', etree.CDATA('World'))
38 39
40 -def test_suite():
41 suite = unittest.TestSuite() 42 suite.addTests([unittest.makeSuite(BuilderTestCase)]) 43 return suite
44 45 if __name__ == '__main__': 46 print('to test use test.py %s' % __file__) 47