def testGetStatus(self): """ Gets the status of a message """ xml = self.file_contents( join(self.data_path, 'responses', 'response1.xml.base64')) xml = b64decode(xml) dom = etree.fromstring(xml) status = OneLogin_Saml2_Utils.get_status(dom) self.assertEqual(OneLogin_Saml2_Constants.STATUS_SUCCESS, status['code']) xml2 = self.file_contents( join(self.data_path, 'responses', 'invalids', 'status_code_responder.xml.base64')) xml2 = b64decode(xml2) dom2 = etree.fromstring(xml2) status2 = OneLogin_Saml2_Utils.get_status(dom2) self.assertEqual(OneLogin_Saml2_Constants.STATUS_RESPONDER, status2['code']) self.assertEqual('', status2['msg']) xml3 = self.file_contents( join(self.data_path, 'responses', 'invalids', 'status_code_responer_and_msg.xml.base64')) xml3 = b64decode(xml3) dom3 = etree.fromstring(xml3) status3 = OneLogin_Saml2_Utils.get_status(dom3) self.assertEqual(OneLogin_Saml2_Constants.STATUS_RESPONDER, status3['code']) self.assertEqual('something_is_wrong', status3['msg']) xml_inv = self.file_contents( join(self.data_path, 'responses', 'invalids', 'no_status.xml.base64')) xml_inv = b64decode(xml_inv) dom_inv = etree.fromstring(xml_inv) try: status_inv = OneLogin_Saml2_Utils.get_status(dom_inv) self.assertEqual(status_inv, 42) except Exception as e: self.assertEqual('Missing Status on response', e.message) xml_inv2 = self.file_contents( join(self.data_path, 'responses', 'invalids', 'no_status_code.xml.base64')) xml_inv2 = b64decode(xml_inv2) dom_inv2 = etree.fromstring(xml_inv2) try: status_inv2 = OneLogin_Saml2_Utils.get_status(dom_inv2) self.assertEqual(status_inv2, 42) except Exception as e: self.assertEqual('Missing Status Code on response', e.message)
def testGetStatus(self): """ Gets the status of a message """ xml = self.file_contents(join(self.data_path, 'responses', 'response1.xml.base64')) xml = b64decode(xml) dom = etree.fromstring(xml) status = OneLogin_Saml2_Utils.get_status(dom) self.assertEqual(OneLogin_Saml2_Constants.STATUS_SUCCESS, status['code']) xml2 = self.file_contents(join(self.data_path, 'responses', 'invalids', 'status_code_responder.xml.base64')) xml2 = b64decode(xml2) dom2 = etree.fromstring(xml2) status2 = OneLogin_Saml2_Utils.get_status(dom2) self.assertEqual(OneLogin_Saml2_Constants.STATUS_RESPONDER, status2['code']) self.assertEqual('', status2['msg']) xml3 = self.file_contents(join(self.data_path, 'responses', 'invalids', 'status_code_responer_and_msg.xml.base64')) xml3 = b64decode(xml3) dom3 = etree.fromstring(xml3) status3 = OneLogin_Saml2_Utils.get_status(dom3) self.assertEqual(OneLogin_Saml2_Constants.STATUS_RESPONDER, status3['code']) self.assertEqual('something_is_wrong', status3['msg']) xml_inv = self.file_contents(join(self.data_path, 'responses', 'invalids', 'no_status.xml.base64')) xml_inv = b64decode(xml_inv) dom_inv = etree.fromstring(xml_inv) try: status_inv = OneLogin_Saml2_Utils.get_status(dom_inv) self.assertEqual(status_inv, 42) except Exception as e: self.assertEqual('Missing Status on response', e.message) xml_inv2 = self.file_contents(join(self.data_path, 'responses', 'invalids', 'no_status_code.xml.base64')) xml_inv2 = b64decode(xml_inv2) dom_inv2 = etree.fromstring(xml_inv2) try: status_inv2 = OneLogin_Saml2_Utils.get_status(dom_inv2) self.assertEqual(status_inv2, 42) except Exception as e: self.assertEqual('Missing Status Code on response', e.message)
def check_status(self): """ Check if the status of the response is success or not :raises: Exception. If the status is not success """ status = OneLogin_Saml2_Utils.get_status(self.document) code = status.get('code', None) if code and code != OneLogin_Saml2_Constants.STATUS_SUCCESS: splited_code = code.split(':') printable_code = splited_code.pop() status_exception_msg = 'The status code of the Response was not Success, was %s' % printable_code status_msg = status.get('msg', None) if status_msg: status_exception_msg += ' -> ' + status_msg raise Exception(status_exception_msg)