def process(self, request, body, header=None): """ Process a SOAP request. """ for child in body.getchildren(): # Since there is no SOAPAction header, and these requests are not # made to different endpoints, the only way to handle these is to # switch on the root element's name. Yuck. localname = split_qualified(child.tag)[1] meth = getattr(self, 'process_' + localname, self.process_unknown) return meth(child, header, localname) raise SoapFault(u'soapenv:Client', u'No actionable items')
def process_unknown(self, root, header, name): """ Process unknown notification deliverables. """ raise SoapFault(u'soapenv:Server', u'No handler for %s' % (name,))