@@ -121,10 +121,8 @@ def testGetNameIdData(self):
121121 self .assertEqual (expected_name_id_data , name_id_data_2 )
122122
123123 request_2 = self .file_contents (join (self .data_path , 'logout_requests' , 'logout_request_encrypted_nameid.xml' ))
124- with self .assertRaises (Exception ) as context :
124+ with self .assertRaisesRegexp (Exception , 'Key is required in order to decrypt the NameID' ) :
125125 OneLogin_Saml2_Logout_Request .get_nameid (request_2 )
126- exception = context .exception
127- self .assertIn ("Key is required in order to decrypt the NameID" , str (exception ))
128126
129127 settings = OneLogin_Saml2_Settings (self .loadSettingsJSON ())
130128 key = settings .get_sp_key ()
@@ -140,16 +138,12 @@ def testGetNameIdData(self):
140138 encrypted_id_nodes = dom_2 .getElementsByTagName ('saml:EncryptedID' )
141139 encrypted_data = encrypted_id_nodes [0 ].firstChild .nextSibling
142140 encrypted_id_nodes [0 ].removeChild (encrypted_data )
143- with self .assertRaises (Exception ) as context :
141+ with self .assertRaisesRegexp (Exception , 'Not NameID found in the Logout Request' ) :
144142 OneLogin_Saml2_Logout_Request .get_nameid (dom_2 .toxml (), key )
145- exception = context .exception
146- self .assertIn ("Not NameID found in the Logout Request" , str (exception ))
147143
148144 inv_request = self .file_contents (join (self .data_path , 'logout_requests' , 'invalids' , 'no_nameId.xml' ))
149- with self .assertRaises (Exception ) as context :
145+ with self .assertRaisesRegexp (Exception , 'Not NameID found in the Logout Request' ) :
150146 OneLogin_Saml2_Logout_Request .get_nameid (inv_request )
151- exception = context .exception
152- self .assertIn ("Not NameID found in the Logout Request" , str (exception ))
153147
154148 def testGetNameId (self ):
155149 """
@@ -160,10 +154,8 @@ def testGetNameId(self):
160154 self .assertEqual (name_id , 'ONELOGIN_1e442c129e1f822c8096086a1103c5ee2c7cae1c' )
161155
162156 request_2 = self .file_contents (join (self .data_path , 'logout_requests' , 'logout_request_encrypted_nameid.xml' ))
163- with self .assertRaises (Exception ) as context :
157+ with self .assertRaisesRegexp (Exception , 'Key is required in order to decrypt the NameID' ) :
164158 OneLogin_Saml2_Logout_Request .get_nameid (request_2 )
165- exception = context .exception
166- self .assertIn ("Key is required in order to decrypt the NameID" , str (exception ))
167159
168160 settings = OneLogin_Saml2_Settings (self .loadSettingsJSON ())
169161 key = settings .get_sp_key ()
@@ -242,12 +234,9 @@ def testIsInvalidIssuer(self):
242234 self .assertTrue (logout_request .is_valid (request_data ))
243235
244236 settings .set_strict (True )
245- try :
246- logout_request2 = OneLogin_Saml2_Logout_Request (settings , OneLogin_Saml2_Utils .b64encode (request ))
247- valid = logout_request2 .is_valid (request_data )
248- self .assertFalse (valid )
249- except Exception as e :
250- self .assertIn ('Invalid issuer in the Logout Request' , str (e ))
237+ logout_request2 = OneLogin_Saml2_Logout_Request (settings , OneLogin_Saml2_Utils .b64encode (request ))
238+ with self .assertRaisesRegexp (Exception , 'Invalid issuer in the Logout Request' ):
239+ logout_request2 .is_valid (request_data , raises = True )
251240
252241 def testIsInvalidDestination (self ):
253242 """
@@ -264,12 +253,9 @@ def testIsInvalidDestination(self):
264253 self .assertTrue (logout_request .is_valid (request_data ))
265254
266255 settings .set_strict (True )
267- try :
268- logout_request2 = OneLogin_Saml2_Logout_Request (settings , OneLogin_Saml2_Utils .b64encode (request ))
269- valid = logout_request2 .is_valid (request_data )
270- self .assertFalse (valid )
271- except Exception as e :
272- self .assertIn ('The LogoutRequest was received at' , str (e ))
256+ logout_request2 = OneLogin_Saml2_Logout_Request (settings , OneLogin_Saml2_Utils .b64encode (request ))
257+ with self .assertRaisesRegexp (Exception , 'The LogoutRequest was received at' ):
258+ logout_request2 .is_valid (request_data , raises = True )
273259
274260 dom = parseString (request )
275261 dom .documentElement .setAttribute ('Destination' , None )
@@ -298,12 +284,9 @@ def testIsInvalidNotOnOrAfter(self):
298284 self .assertTrue (logout_request .is_valid (request_data ))
299285
300286 settings .set_strict (True )
301- try :
302- logout_request2 = OneLogin_Saml2_Logout_Request (settings , OneLogin_Saml2_Utils .b64encode (request ))
303- valid = logout_request2 .is_valid (request_data )
304- self .assertFalse (valid )
305- except Exception as e :
306- self .assertIn ('Timing issues (please check your clock settings)' , str (e ))
287+ logout_request2 = OneLogin_Saml2_Logout_Request (settings , OneLogin_Saml2_Utils .b64encode (request ))
288+ with self .assertRaisesRegexp (Exception , 'Timing issues \(please check your clock settings\)' ):
289+ logout_request2 .is_valid (request_data , raises = True )
307290
308291 def testIsValid (self ):
309292 """
@@ -336,3 +319,19 @@ def testIsValid(self):
336319 request = request .replace ('http://stuff.com/endpoints/endpoints/sls.php' , current_url )
337320 logout_request5 = OneLogin_Saml2_Logout_Request (settings , OneLogin_Saml2_Utils .b64encode (request ))
338321 self .assertTrue (logout_request5 .is_valid (request_data ))
322+
323+ def testIsValidRaisesExceptionWhenRaisesArgumentIsTrue (self ):
324+ request = OneLogin_Saml2_Utils .b64encode ('<xml>invalid</xml>' )
325+ request_data = {
326+ 'http_host' : 'example.com' ,
327+ 'script_name' : 'index.html' ,
328+ }
329+ settings = OneLogin_Saml2_Settings (self .loadSettingsJSON ())
330+ settings .set_strict (True )
331+
332+ logout_request = OneLogin_Saml2_Logout_Request (settings , request )
333+
334+ self .assertFalse (logout_request .is_valid (request_data ))
335+
336+ with self .assertRaises (Exception ):
337+ logout_request .is_valid (request_data , raises = True )
0 commit comments