Пример #1
0
 def handleFault(self, code, xml):
     type = ((xml and xml.nodeName) or '')
     args = []
     if type:
         notes = dict([
             (n.nodeName, n.firstChild.data) for n in xml.childNodes if n.nodeName in ('message', 'details')
         ])
         args.append( (notes.has_key('message') and notes['message']) or None )
         args.append(code)
         if notes.has_key('details'): args.append(notes['details'])
     else:
         args.extend([None, code])
     exceptions.throw(type, *args)
 def testExceptionRegistryOps(self):
     err = None
     exceptionType = 'fuError'
     self.assertFalse(exceptions.handlerFor(exceptionType))
     try:
         exceptions.throw(exceptionType)
     except exceptions.UnknownExceptionType:
         err = True
     self.assertTrue(err)
     # Now register the handler and we should be able to throw it
     exceptions.registerHandler('fuError', StubException)
     self.assertEqual(exceptions.handlerFor(exceptionType), StubException)
     err = None
     try:
         exceptions.throw(exceptionType)
     except StubException:
         err = True
     self.assertTrue(err)