Annotation of embedaddon/libxml2/python/tests/tstLastError.py, revision 1.1.1.1

1.1       misho       1: #!/usr/bin/python -u
                      2: import sys, unittest
                      3: 
                      4: import libxml2
                      5: 
                      6: class TestCase(unittest.TestCase):
                      7: 
                      8:     def runTest(self):
                      9:         self.test1()
                     10:         self.test2()
                     11: 
                     12:     def setUp(self):
                     13:         libxml2.debugMemory(1)
                     14: 
                     15:     def tearDown(self):
                     16:         libxml2.cleanupParser()
                     17:         if libxml2.debugMemory(1) != 0:
                     18:             libxml2.dumpMemory() 
                     19:             self.fail("Memory leak %d bytes" % (libxml2.debugMemory(1),))
                     20:        else:
                     21:            print "OK"
                     22: 
                     23:     def failUnlessXmlError(self,f,args,exc,domain,code,message,level,file,line):
                     24:         """Run function f, with arguments args and expect an exception exc;
                     25:         when the exception is raised, check the libxml2.lastError for
                     26:         expected values."""
                     27:         # disable the default error handler
                     28:         libxml2.registerErrorHandler(None,None)
                     29:         try:
                     30:            apply(f,args)
                     31:         except exc:
                     32:             e = libxml2.lastError()
                     33:             if e is None:
                     34:                 self.fail("lastError not set")
                     35:             if 0:
                     36:                 print "domain = ",e.domain()
                     37:                 print "code = ",e.code()
                     38:                 print "message =",repr(e.message())
                     39:                 print "level =",e.level()
                     40:                 print "file =",e.file()
                     41:                 print "line =",e.line()
                     42:                 print
                     43:             self.failUnlessEqual(domain,e.domain())
                     44:             self.failUnlessEqual(code,e.code())
                     45:             self.failUnlessEqual(message,e.message())
                     46:             self.failUnlessEqual(level,e.level())
                     47:             self.failUnlessEqual(file,e.file())
                     48:             self.failUnlessEqual(line,e.line())
                     49:         else:
                     50:             self.fail("exception %s should have been raised" % exc)
                     51: 
                     52:     def test1(self):
                     53:         """Test readFile with a file that does not exist"""
                     54:         self.failUnlessXmlError(libxml2.readFile,
                     55:                         ("dummy.xml",None,0),
                     56:                         libxml2.treeError,
                     57:                         domain=libxml2.XML_FROM_IO,
                     58:                         code=libxml2.XML_IO_LOAD_ERROR,
                     59:                         message='failed to load external entity "dummy.xml"\n',
                     60:                         level=libxml2.XML_ERR_WARNING,
                     61:                         file=None,
                     62:                         line=0)
                     63: 
                     64:     def test2(self):
                     65:         """Test a well-formedness error: we get the last error only"""
                     66:         s = "<x>\n<a>\n</x>"
                     67:         self.failUnlessXmlError(libxml2.readMemory,
                     68:                         (s,len(s),"dummy.xml",None,0),
                     69:                         libxml2.treeError,
                     70:                         domain=libxml2.XML_FROM_PARSER,
                     71:                         code=libxml2.XML_ERR_TAG_NOT_FINISHED,
                     72:                         message='Premature end of data in tag x line 1\n',
                     73:                         level=libxml2.XML_ERR_FATAL,
                     74:                         file='dummy.xml',
                     75:                         line=3)
                     76: 
                     77: if __name__ == "__main__":
                     78:     test = TestCase()
                     79:     test.setUp()
                     80:     test.test1()
                     81:     test.test2()
                     82:     test.tearDown()

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>