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

Source Code for Module lxml.tests.test_errors

 1  # -*- coding: utf-8 -*- 
 2  import unittest, doctest 
 3   
 4  # These tests check that error handling in the Pyrex code is 
 5  # complete. 
 6  # It is likely that if there are errors, instead of failing the code 
 7  # will simply crash. 
 8   
 9  import sys, gc, os.path 
10  from lxml import etree 
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 
17   
18 -class ErrorTestCase(HelperTestCase):
19 etree = etree 20
21 - def test_bad_element(self):
22 # attrib argument of Element() should be a dictionary, so if 23 # we pass a string we should get an error. 24 self.assertRaises(TypeError, self.etree.Element, 'a', 'b')
25
26 - def test_empty_parse(self):
27 self.assertRaises(etree.XMLSyntaxError, etree.fromstring, '')
28
30 # test if cyclic reference can crash etree 31 Element = self.etree.Element 32 gc.collect() 33 34 count = sys.getrefcount(None) 35 36 l = [Element('name'), Element('name')] 37 l.append(l) 38 39 del l 40 gc.collect() 41 42 self.assertEqual(sys.getrefcount(None), count)
43
44 -def test_suite():
45 suite = unittest.TestSuite() 46 suite.addTests([unittest.makeSuite(ErrorTestCase)]) 47 return suite
48 49 if __name__ == '__main__': 50 print('to test use test.py %s' % __file__) 51