Example #1
0
 def parse(self, source):
     """Parse SOAPFault element"""
     if ElementTree.iselement(source):
         self.elem = source
     else:
         self.elem = self._parse(source)
               
     for elem in self.elem:
         localName = QName.getLocalPart(elem.tag)
         if localName == SOAPFault.FAULT_CODE_ELEMENT_LOCAL_NAME:
             self.faultCode = elem.text.strip() 
             
         elif localName == SOAPFault.FAULT_STRING_ELEMENT_LOCAL_NAME:
             self.faultString = elem.text.strip()
         
         elif localName == SOAPFault.FAULT_ACTOR_ELEMENT_LOCAL_NAME:
             self.faultActor = elem.text.strip()    
         
         elif localName == SOAPFault.DETAIL_ELEMENT_LOCAL_NAME:
             # Make no assumptions about the content, simply assing the 
             # element to the detail attribute
             self.detail = elem   
              
         else:
             faultCode = str(QName(SOAPFault.DEFAULT_ELEMENT_NS, 
                               tag=SOAPFault.CLIENT_FAULT_CODE, 
                               prefix=SOAPFault.DEFAULT_ELEMENT_NS_PREFIX))
             
             raise SOAPFaultException('Invalid child element in SOAP '
                                      'Fault "%s" for stream %r' % 
                                      (localName, source),
                                      faultCode)
Example #2
0
 def parse(self, source):
     """This method ONLY parses a SOAPFault IF one is found"""
     if ElementTree.iselement(source):
         self.elem = source
     else:
         self.elem = self._parse(source)
               
     for elem in self.elem:
         localName = QName.getLocalPart(elem.tag)
         if localName == SOAPFault.DEFAULT_ELEMENT_LOCAL_NAME:
             if self.fault is None:
                 self.fault = SOAPFault()
                 
             self.fault.parse(elem)
             
             # Only one SOAPFault element is expected
             break
Example #3
0
 def parse(self, source):
     """Parse SOAP Envelope"""
     self.elem = self._parse(source) 
     
     for elem in self.elem:
         localName = QName.getLocalPart(elem.tag)
         if localName == SOAPHeader.DEFAULT_ELEMENT_LOCAL_NAME:
             self.header.elem = elem
             
         elif localName == SOAPBody.DEFAULT_ELEMENT_LOCAL_NAME:
             self.body.parse(elem)
         else:
             faultCode = str(QName(SOAPEnvelopeBase.DEFAULT_ELEMENT_NS, 
                               tag=SOAPFault.CLIENT_FAULT_CODE, 
                               prefix=SOAPFault.DEFAULT_ELEMENT_NS_PREFIX))
             
             raise SOAPFaultException('Invalid child element in SOAP '
                                      'Envelope "%s" for stream %r' % 
                                      (localName, source),
                                      faultCode)